SQL

【SQL】DISTINCTの使い方(重複データ除外)

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)


チャンネル登録はこちら

フォローはこちら


よろしければ記事の評価をお願いします