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

GROUP BYを使わずにMySQLで重複行を削除する方法|DISTINCTキーワードの使い方

重複する行を削除して一意のレコードだけを取得したい場合、DISTINCTキーワードを使用することで簡単に実現できます。ここでは、実際にテーブルを作成しながら手順を確認していきましょう。

テーブルの作成

まず、サンプル用のテーブルを作成します。

mysql> create table DemoTable1801
    (
    Name varchar(20),
    Score int
    );
Query OK, 0 rows affected (0.00 sec)

レコードの挿入

次に、INSERTコマンドを使ってテーブルにレコードを挿入します。あえて同じデータ(John, 98)を2件登録している点に注目してください。

mysql> insert into DemoTable1801 values('John',98);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1801 values('John',98);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1801 values('John',99);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1801 values('Carol',99);
Query OK, 1 row affected (0.00 sec)

全レコードの表示

SELECT文でテーブル内のすべてのレコードを表示してみます。

mysql> select * from DemoTable1801;

以下のような出力結果が得られます。

+-------+-------+
| Name  | Score |
+-------+-------+
| John  |    98 |
| John  |    98 |
| John  |    99 |
| Carol |    99 |
+-------+-------+
4 rows in set (0.00 sec)

ご覧のとおり、「John, 98」という組み合わせが重複して登録されています。

DISTINCTキーワードで重複行を除外する

重複を除外して一意のレコードのみを取得するには、SELECT文にDISTINCTキーワードを指定します。

mysql> select distinct Name,Score from DemoTable1801;

実行すると、以下の出力結果が得られます。

+-------+-------+
| Name  | Score |
+-------+-------+
| John  |    98 |
| John  |    99 |
| Carol |    99 |
+-------+-------+
3 rows in set (0.00 sec)

このように、DISTINCTキーワードを使うことで、NameとScoreの組み合わせが完全に一致する重複行が除外され、4件だったレコードが3件に絞り込まれました。GROUP BY句を使わなくても、シンプルに重複データを排除できるのが大きなポイントです。

  1. MySQLでGROUP BYを使って学生ごとの点数をグループ化し、合計点数を表示する方法

    はじめにMySQLで学生ごとに点数(マーク)をグループ化し、それぞれの合計点数を求めるには、GROUP BY句とSUM()関数を組み合わせて使用します。本記事では、実際のサンプルコードと実行結果をもとに、その手順をわかりやすく解説します。1. サンプルテーブルを作成するまず、学生名と点数を格納するためのテーブルを作成します。mysql> create table DemoTable1920   (   StudentName varchar(20),   StudentMarks int   );Query

  2. MySQLでGROUP BYを使ってグループごとの列の最大値を取得する方法

    MySQLでは、GROUP BY句とMAX()関数を組み合わせることで、グループごとに特定の列の最大値を簡単に取得できます。本記事では、その基本的な構文と具体的な使用例をわかりやすく解説します。基本構文グループごとに列の最大値を求めるには、以下のようなSQLクエリを使用します。SELECT colName1, MAX(colName2)FROM tableNameGROUP BY colName1ORDER BY colName1;実例:PRODUCTテーブルでの最大価格の取得それでは、実際の例を見てみましょう。ここでは、記事(Article)ごとの価格(Price)が登録された「PRODUC