問題:
SQLで重複しないレコードを表示したい。
例:
私たちのデータベースには、City
id
列にデータがあります 、name
、およびcountry
。
id | 名前 | 国 |
---|---|---|
1 | マドリード | スペイン |
2 | バルセロナ | スペイン |
3 | ワルシャワ | ポーランド |
4 | クラコウ | ポーランド |
重複することなく国の名前を取得しましょう。
解決策:
キーワードDISTINCT
を使用します 。クエリは次のとおりです:
SELECT DISTINCT country FROM City;
クエリの結果は次のとおりです。
国 |
---|
スペイン |
ポーランド |
ディスカッション:
クエリが一意の行のみを返すようにする場合は、キーワードDISTINCT
を使用します SELECT
の後 。 DISTINCT
1つ以上の列から一意の行をフェッチするために使用できます。 DISTINCT
の後に列をリストする必要があります キーワード。
内部ではどのように機能しますか?クエリが実行されると、最初にデータセット全体が選択され、次にDISTINCT
が選択されます。 選択した列を指定して重複している行を削除します。
この例では、スペインとポーランドの両方がテーブルで2回発生しています。ただし、キーワードDISTINCT
を適用した後 、それぞれが1回だけ返されます。