重複する行を削除するSELECT DISTINCT
データは項目の内容が重複していることがある
今回はSQLについてです。
データには項目の内容が重複するものが含まれている場合があります。
そこから重複を除いてデータを抽出したいことがあります。
例えば、次のサンプルのように1月の仕入明細データといったときには、売れ筋商品のように何回も仕入れたものがあれば仕入明細データは重複しています。
サンプルテーブル buyList
入荷日付 商品番号 商品名 当社原価 相手原価 20170102 12345 XA-55 3500 3500 20170103 132977 RX98 2980 3280 20170103 349401 NOK0655 2500 2500 20170103 349401 NOK0655 2500 2500 20170104 227291 NOK2355 3500 35000 20170104 227291 NOK2355 3500 35000 20170104 349401 NOK0655 2500 2500 20170105 5288923 JJ2CAN 6000 6200 20170105 132977 RX98 2780 2980
1月に仕入れた商品の一覧という時には重複を除いて商品番号や商品名を抽出すれば良いことになります。
キー項目で重複を除いたデータを取得する SELECT DISTINCT
重複を除いてデータを取得するのが SELECT DISTINCT です。
-- SQlite3 SELECT DISTINCT カラム名... FROM テーブル名;
SELECT DISTINCT の後にキー項目を指定します。そのキー項目で重複がないようにデータが抽出されます。
SELECT DISTINCT 商品番号,商品名 FROM buyList ORDER BY 商品番号; /* 実行結果 商品番号 商品名 1 12345 XA-55 2 132977 RX98 3 227291 NOK2355 4 349401 NOK0655 5 5288923 JJ2CAN */
このように重複が除かれて抽出されます。