🚲
"SELECT DISTINCT"で重複行をシンプルに
SELECT DISTINCT
コマンド
SELECT DISTINCT
は、重複したレコードは表示せず、ユニークなレコードのみを返してくれるコマンド。
例
SELECT name from sample;
name |
---|
Taro |
Jiro |
Taro |
SELECT DISTINCT name from sample;
name |
---|
Taro |
Jiro |
実際に使用してみる
あるカラム(ex. student_id)において、値が重複しているレコードの student_id を知りたい。
そんな時には、、
SELECT DISTINCT student_id FROM students GROUP BY student_id having count(*) > 1;
解説
GROUP BY student_id having count(*) > 1;
student_id を持つレコードが二つ以上ある場合でグループを作成。
SELECT DISTINCT student_id FROM students GROUP BY ...
グループ化で重複している前提のあるレコードに、DISTINCT
を適用することで SELECT
したカラムの重複しているレコードをリスト化している。
ちなみに
SELECT ALL
通常は SELECT ALL
は、重複した行も含めてすべての行を表示する。SELECT DISTINCT
とは対照的なこの処理が SELECT
のデフォルト動作。
Discussion