【SQL入門講座】13. GROUP BY <未経験からデータサイエンティストを目指す!転職支援>

目次

「GROUP BY」 < データのグルーピングと集計 >

データを集計したいときはどうすればいいの?

そんな時は、「GROUP BY」「集計関数」を使用します。
グルーピングしたいカラムをもとに集計関数を使って合計や平均、最小値や最大値,カウントなどを計算することができます。
では、実際のデータを用いてやってみましょう!
以下のデータは、1896年から2016年までに開催された全オリンピックのアスリートとイベントのデータです。(テーブル名:OLYMPICS_athlete_events)

・集計関数:合計やカウント、最大値、最小値などを求める関数

https://domohelp.domo.com/hc/ja/articles/360043931814-
OLYMPICS_athlete_eventsテーブル名
IDデータセット内の順番に基づいてアスリートに割り当てられたID番号
Nameアスリートの名前
Sexアスリートの性別
Ageアスリートの年齢
Heightアスリートの身長(センチメートル単位)
Weightアスリートの体重(キログラム単位)
Teamこのアスリートが所属する国
NOCアスリートが所属する国を表す3文字の略語
Gamesこのオリンピック大会の開催年と季節
Year大会の開催年
Season大会の季節(SummerまたはWinter)
Cityオリンピックが開催された都市
Sport大会の種目
Event大会の名前
Medalアスリートが獲得したメダル(獲得したメダルがない場合は「NA」)
OLYMPICS_athlete_events

この中から例えば、国籍ごとの金メダルの獲得数を集計してみましょう。
その際は「GROUP BY」「count」を使用します。
以下のようにSQLを記述します。

使い方

グルーピングしたいカラムグルーピングして、集計を行いたいカラムごと集計をする

SELECT カラム名 , 集計関数(集計カラム名)
FROM テーブル名
GROUP BY グルーピングしたいカラム名 ;

▼集計関数
・count:データ数(レコード数)
・sum:合計値
・avg:平均値
・min:最小値
・max:最大値

実践

Teamをグルーピングして、Teamごとにレコード数を集計をする。
(条件:金メダル獲得者、Teamレコード数降順、データ数20件制限)

SELECT Name,Sex,Age,Team,Medal, count(Team)
FROM OLYMPICS_athlete_events
WHERE Medal = 'Gold' 
GROUP BY Team 
ORDER BY count(Team) DESC
LIMIT 20;

・「GROUP BY」は「WHERE」と「ORDER BY」の間に記述する
・ORDER BY 「何の」並び替え条件

なるほど〜、日本は16番目に金メダル獲得数が多い国なのか!

それでは少し応用をやってみましょう

今度は、金メダルを獲得した人の国籍ごとの年齢の平均と最小値と最大値を抽出して、獲得した金メダル数が多い順にTOP20のデータを表示してみましょう。
平均値はavg,最小値はmin,最大値はmax を用います。

実践

国籍をグルーピングして、国籍ごとにレコード数を集計し、年齢の平均、最小値、最大値を抽出する。
(条件:金メダル獲得者、年齢がNA値以外、Teamレコード数降順、データ数20件制限)

SELECT Team,Medal
,count(Team)
,avg(Age)
,min(Age)
,max(Age)
FROM OLYMPICS_athlete_events
WHERE Medal = 'Gold' AND Age != 'NA'
GROUP BY Team 
ORDER BY count(Team) DESC
LIMIT 20;
実行結果

・集計関数は「,」区切りで複数抽出することが可能です

ふむふむなるほど〜、GROUP BYと集計関数を利用することでデータの合計値や最大最小値、平均値など様々な集計を行うことができるんですね!

そういうことです。

演習

それでは演習をしてみましょう。

準備中

まとめ

  • データのグルーピング:GROUP BY
  • 合計やカウント、最大値、最小値などを求める関数:集計関数(sum,count,avg,min,max…)
  • 「GROUP BY」は「WHERE」と「ORDER BY」の間に記述する

未経験からデータサイエンティストへ!転職支援!

ROYAL AGENT&Co.では、全コンサルタントが5年以上のキャリアコンサルティング経験を持ち、データサイエンティストやAI,DX人材のご紹介に強い転職支援を行っております。

候補者様一人ひとりのキャリアに寄り添ったご支援を心がけ、無闇に求人をご紹介するのではなく、丁寧なカウンセリングを通してご志向性にあった求人をピンポイントにご紹介させて頂いております。未経験からのデータサイエンティスト転職支援実績も多数ございます。

無理な勧誘など一切ありませんので、キャリアのご相談等、まずはお気軽にお問合せください!心よりお待ちしております。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次