重複する列値からレコードをフィルタリングするには、NOTINを指定してMySQL条件付きGROUPBYを実装します
まずテーブルを作成しましょう-
mysql> create table DemoTable ( Name varchar(40), Score int ); Query OK, 0 rows affected (0.48 sec)
挿入コマンド-
を使用して、テーブルにいくつかのレコードを挿入しますmysql> insert into DemoTable values('Adam',89); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable values('Adam',89); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values('Chris',89); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable values('Chris',89); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values('Bob',98); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable values('Bob',89); Query OK, 1 row affected (0.16 sec)>
selectステートメントを使用してテーブルのすべてのレコードを表示する-
mysql> select *from DemoTable;
これにより、次の出力が生成されます-
+-------+-------+ | Name | Score | +-------+-------+ | Adam | 89 | | Adam | 89 | | Chris | 89 | | Chris | 89 | | Bob | 98 | | Bob | 89 | +-------+-------+ 6 rows in set (0.00 sec)
以下は、NOT IN()-
を使用して条件付きGROUPBYを実現するためのクエリです。mysql> select distinct Name from DemoTable where Name not in(select Name from DemoTable where Score <> 89);
これにより、次の出力が生成されます-
+-------+ | Name | +-------+ | Adam | | Chris | +-------+q 2 rows in set (0.06 sec)
-
重複する値を持つ別の列でMySQLグループのタイムスタンプから最初の日付を取得します
このために、集計関数MIN()およびGROUPBYを使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1870 ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Value int, ShippingTimestamp varchar(100) ); Query OK, 0 rows affect
-
MySQLの対応する重複IDを持つ列(浮動値)から最小値を取得します
対応する重複IDを持つ列から最小値を取得するには、GROUP BYおよびMIN()-を使用します select min(yourColumnName) from yourTableName group by yourColumnName; 上記の構文を理解するために、テーブルを作成しましょう- mysql> create table DemoTable2005 ( Id int, Price float ); Query OK, 0 rows affected (0.71 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコ