問題:
クエリの結果セットから重複する行を削除して、各行が1回だけ表示されるようにします。
例:
私たちのデータベースには、clothes
次の列にデータがあります:id
、name
、color
、およびyear_produced
。
id | 名前 | 色 | year_produced |
---|---|---|---|
1 | Tシャツ | 黄色 | 2015 |
2 | ジャケット | 青 | 2016 |
3 | ジーンズ | 黒 | 2015 |
4 | ジャケット | 青 | 2015 |
5 | ジャケット | 緑 | 2016 |
6 | ジャケット | 黄色 | 2017 |
7 | 帽子 | 黄色 | 2017 |
2017年以前に製造された、繰り返されない名前と色の服を入手しましょう。
解決策:
SELECT DISTINCT name, color FROM clothes WHERE year_produced < 2017;
結果は次のとおりです。
名前 | 色 |
---|---|
Tシャツ | 黄色 |
ジャケット | 青 |
ジーンズ | 黒 |
ジャケット | 緑 |
青い
ディスカッション:
DISTINCT
を使用するだけです SELECT
の後のキーワード 繰り返されない行のみを選択する場合。このキーワードは、リストした列のみに基づいて、クエリに重複する行を強制的に破棄します。
アイテムの名前が一意である行のみを選択する例を次に示します。
SELECT DISTINCT name FROM clothes WHERE year_produced < 2017;
前のクエリとは異なり、このクエリは3つのレコードのみを返します。
name | |
---|---|
Tシャツ | |
ジーンズ | |
元のテーブルには4つのジーンズ(青2つ、緑1つ、黄色1つ)がありますが、DISTINCT
のおかげで、この結果セットにはアイテムが1回だけ表示されます。 キーワード。