問題:
クエリの結果セットから重複する行を削除して、各行が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回だけ表示されます。 キーワード。