「DISTINCT」 < 重複データの除去抽出 >
重複した値を排除して抽出したいときはどうするの?
では、実際のデータを用いてやってみましょう!
以下のデータは、1896年から2016年までに開催された全オリンピックのアスリートとイベントのデータです。(テーブル名:OLYMPICS_athlete_events)
OLYMPICS_athlete_events | テーブル名 |
---|---|
ID | データセット内の順番に基づいてアスリートに割り当てられたID番号 |
Name | アスリートの名前 |
Sex | アスリートの性別 |
Age | アスリートの年齢 |
Height | アスリートの身長(センチメートル単位) |
Weight | アスリートの体重(キログラム単位) |
Team | このアスリートが所属する国 |
NOC | アスリートが所属する国を表す3文字の略語 |
Games | このオリンピック大会の開催年と季節 |
Year | 大会の開催年 |
Season | 大会の季節(SummerまたはWinter) |
City | オリンピックが開催された都市 |
Sport | 大会の種目 |
Event | 大会の名前 |
Medal | アスリートが獲得したメダル(獲得したメダルがない場合は「NA」) |
この中から例えば、アスリートの名前を重複せずに抽出してみましょう
その際は、「DISTINCT」を使用します。
以下のようにSQLを記述します。
DISTINCT (重複除去したいカラム名)
アスリート名の重複を除去して抽出
SELECT DISTINCT(Name)
FROM OLYMPICS_athlete_events;
なるほど〜、重複したレコードを除去してデータを抽出したいときは「DISTINCT」を使用するんですね!
そういうことです。
COUNT組み合わせ <抽出したデータの数を数える方法>
アスリートの人数を知りたいときはどうすれば良いんだろう…
いい疑問ですね。
そんなときはDISTINCTで重複の除去を行ない、COUNT関数を組み合わせれば良いのです。
以下のようにSQLを記述します。
COUNT (DISTINCT カラム名)
アスリート名の重複を除去して抽出したレコード数を数える
SELECT COUNT (DISTINCT Name)
FROM OLYMPICS_athlete_events;
なるほど!そうやって書くのか〜〜
そういうことです。
演習
それでは演習をしてみましょう。
準備中
まとめ
- 重複データの除去抽出:DISTINCT
- 抽出したデータの数を数える方法:COUNT
未経験からデータサイエンティストへ!転職支援!
ROYAL AGENT&Co.では、全コンサルタントが5年以上のキャリアコンサルティング経験を持ち、データサイエンティストやAI,DX人材のご紹介に強い転職支援を行っております。
候補者様一人ひとりのキャリアに寄り添ったご支援を心がけ、無闇に求人をご紹介するのではなく、丁寧なカウンセリングを通してご志向性にあった求人をピンポイントにご紹介させて頂いております。未経験からのデータサイエンティスト転職支援実績も多数ございます。
無理な勧誘など一切ありませんので、キャリアのご相談等、まずはお気軽にお問合せください!心よりお待ちしております。