MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

重複した類似したコンテンツの行を削除し、MySQL selectステートメントで最大数の行を取得しますか?


まずテーブルを作成しましょう-

mysql> create table DemoTable1468
   -> (
   -> Id int,
   -> Name varchar(20),
   -> Age int
   -> );
Query OK, 0 rows affected (1.21 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable1468 values(100,'Chris',23);
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable1468 values(101,'Bob',25);
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1468 values(102,'David',30);
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1468 values(100,'Chris',23);
Query OK, 1 row affected (0.35 sec)
mysql> insert into DemoTable1468 values(100,'Chris',38);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1468 values(101,'Bob',23);
Query OK, 1 row affected (0.13 sec)

selectステートメントを使用してテーブルのすべてのレコードを表示する-

mysql> select * from DemoTable1468;

これにより、次の出力が生成されます-

+------+-------+------+
| Id   | Name  |  Age |
+------+-------+------+
|  100 | Chris |   23 |
|  101 | Bob   |   25 |
|  102 | David |   30 |
|  100 | Chris |   23 |
|  100 | Chris |   38 |
|  101 | Bob   |   23 |
+------+-------+------+
6 rows in set (0.00 sec)

これは、重複して類似したコンテンツを含む行を削除し、selectステートメント-

を使用して最大数の行を取得するためのクエリです。
mysql> select Id,Name,Age from DemoTable1468
   -> group by Name,Id
   -> having max(Age);

これにより、次の出力が生成されます-

+------+-------+------+
| Id   | Name  | Age  |
+------+-------+------+
|  100 | Chris |   23 |
|  101 | Bob   |   25 |
|  102 | David |   30 |
+------+-------+------+
3 rows in set (0.00 sec)

  1. MySQLの類似した学生名のレコードから最大年齢を取得します

    このために、集約関数MAX()とともにGROUPBYを使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1964    (    StudentName varchar(20),    StudentAge int    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1964 values(&

  2. MySQLで重複行から1行のみを返す

    重複する行から1つの行のみを返すには、DISTINCTキーワード-を使用します。 mysql> create table DemoTable1998 (    Name varchar(20) ); Query OK, 0 rows affected (0.61 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1998 values('Robert'); Query OK, 1 row affected (0.17 sec) mysql> insert