SQLite の個別キーワード
SQLite の DISTINCT キーワードは、重複するレコードをすべて削除し、一意のレコードを 1 回だけフェッチするために SELECT ステートメントとともに使用されます。
テーブル内に複数の重複レコードが存在する状況が発生する可能性があります。 DISTINCT キーワードは、重複レコードではなく一意のレコードのみをフェッチするため、このようなレコードをフェッチする場合に特に意味があります。
構文
重複レコードを削除するために使用される DISTINCT キーワードの基本構文は次のとおりです:
SELECT DISTINCT column1, column2,...columnN
FROM table_name
WHERE [条件]
FROM table_name
WHERE [条件]
例
COMPANY テーブルに次のレコードがあるとします。
ID NAME AGE ADDRESS SALARY
---------- ---------- -------- -- ---------- ----------
1 ポール 32 カリフォルニア 20000.0
2 アレン 25 テキサス 15000.0
3 テディ 23 ノルウェー 20000.0
4 マーク 25 リッチモンド 65000.0
5デビッド 27 テキサス 85000.0
6 キム 22 サウスホール 45000.0
7 ジェームズ 24 ヒューストン 10000
8 ポール 24 ヒューストン 20000.0
9 ジェームズ 44 ノルウェー 5000.0
ジェームズ 45 テキサス 5000.0
---------- ---------- -------- -- ---------- ----------
1 ポール 32 カリフォルニア 20000.0
2 アレン 25 テキサス 15000.0
3 テディ 23 ノルウェー 20000.0
4 マーク 25 リッチモンド 65000.0
5デビッド 27 テキサス 85000.0
6 キム 22 サウスホール 45000.0
7 ジェームズ 24 ヒューストン 10000
8 ポール 24 ヒューストン 20000.0
9 ジェームズ 44 ノルウェー 5000.0
ジェームズ 45 テキサス 5000.0
クエリを左にすると、重複した給与記録が返されます:
sqlite>会社から名前を選択;
これにより、次の結果が生成されます:
NAME
----------
Paul
Allen
Teddy
Mark
David
Kim
James
Paul
James
James
----------
Paul
Allen
Teddy
Mark
David
Kim
James
Paul
James
James
さて、上記の SELECT クエリは DISTINCT キーワードを使用します:
sqlite> SELECT DISTINCT name FROM COMPANY;
これにより、重複エントリなしで次の結果が生成されます:
NAME
------ ---
ポール
アレン
テディ
マーク
デビッド
キム
ジェームズ
------ ---
ポール
アレン
テディ
マーク
デビッド
キム
ジェームズ