DISTINCTの基本構文
SQLのDISTINCTを使うと、重複したデータを除外できます。
DISTINCTの基本構文
SELECT DISTINCT 列名 FROM テーブル名 WHERE 条件;
本記事では「DISTINCT」を使い、重複データを除外する方法を解説していきます。
また、下記の「userテーブル」に次のようなデータが格納されていることを前提としています。
【userテーブル】
ID (id) | 名前 (name) | 住所 (address) | 年齢 (age) | 部署ID (department_id) |
202000001 | 鈴木一郎 | 東京都 | 44 | 1 |
202000002 | 佐藤次郎 | 埼玉県 | 32 | 1 |
202000003 | 田中三郎 | 千葉県 | 24 | 3 |
202000004 | 伊藤四郎 | 東京都 | 22 | 2 |
202000005 | 斎藤五郎 | 東京都 | 55 | 2 |
スポンサーリンク
DISTINCTの使い方
DISTINCTを使い重複データを除外する
例えば、次のように「部署コード」を取得するSQLがある場合、"1"と"3"が重複しています。
■DISTINCTを使わない場合の例
SELECT department_id FROM user;
■実行結果
+---------------+
| department_id |
+---------------+
| 1 |
| 1 |
| 3 |
| 2 |
| 2 |
+---------------+
5 rows in set (0.00 sec)
これに対して、「DISTINCT」を使うと重複したデータを除外できます。
■DISTINCTを使った場合の例
SELECT DISTINCT department_id FROM user;
■実行結果
+---------------+
| department_id |
+---------------+
| 1 |
| 3 |
| 2 |
+---------------+
3 rows in set (0.00 sec)
列名の前に「DISTINCT」を追加することで、重複データが除外されました。
複数の列(カラム)を対象に重複データを除外する
「DISTINCT」は複数の列(カラム)に対しても使用できます。
例えば、次のように「住所」と「部署ID」を取得するSQLの場合、「住所」が"東京都"で「部署ID」が"2"のデータが重複しています。
■DISTINCTを使わない場合の例
SELECT address, department_id FROM user;
■実行結果
+---------+---------------+
| address | department_id |
+---------+---------------+
| 東京都 | 1 |
| 埼玉県 | 1 |
| 千葉県 | 3 |
| 東京都 | 2 |
| 東京都 | 2 |
+---------+---------------+
5 rows in set (0.00 sec)
これに対して、「DISTINCT」を使うと重複したデータを除外できます。
■DISTINCTを使った場合の例
SELECT DISTINCT address, department_id FROM user;
■実行結果
+---------+---------------+
| address | department_id |
+---------+---------------+
| 東京都 | 1 |
| 埼玉県 | 1 |
| 千葉県 | 3 |
| 東京都 | 2 |
+---------+---------------+
4 rows in set (0.00 sec)
helpful
この記事は役に立ちましたか?