single
チャレンジ:GROUP BY句
メニューを表示するにはスワイプしてください
Intermediate SQLコースへようこそ!
最初のセクションでは、テーブル内のデータをグループ化および集計する方法について学びます。
従業員テーブルの簡単な例を使って「データのグループ化」が何を意味するかを説明します:
データのグループ化
課題は、各部門ごとの従業員数を求めることです。このために、department列でデータをグループ化し、COUNT(*)関数を使って集計します。
実装例は次のようになります:
123SELECT department, COUNT(*) AS number_of_employees FROM employees GROUP BY department
ご覧の通り、データをグループ化する構文は次のようになります:
SELECT column1, AGG_FUNC(column2)
FROM table
GROUP BY column1
AGG_FUNC は、MAX、MIN、COUNT などの集計関数を指します。
この構文は、特定の列に対して集計関数を使用して特定の値を取得するために存在します。
別の例として、最も平均給与が高い部門を見つけるという課題があります。
このようなデータを取得するには、department 列でデータをグループ化し、AVG() 関数を使って平均給与を計算します。
123SELECT department, AVG(salary) as average_salary FROM employees GROUP BY department
このセクションでは、Montreal Metro system database を使用します。このデータベースには metro_travel_time テーブルが含まれています。
このテーブルには、路線名(line_name)、駅名(station_name)、および次の駅までの所要時間(time_to_next_station)に関する情報が含まれています。
以下は、このテーブルの構造とデータプレビューです。
ご覧のとおり、これは複雑なテーブルではありません。ここでグループ化をどのように活用できるかを考えてみてください。
最も明白な選択肢は、地下鉄路線の色ごとにグループ化することです。つまり、地下鉄路線の色でデータを集計することができます。
エイリアス
課題では、エイリアスと呼ばれる概念をよく使用します。エイリアスとは、SELECT文で取得するカラムに付ける「ニックネーム」のようなものです。次の構文で指定します:
SELECT column AS alias
エイリアスは、レスポンスでカラムがどのように表示されるかにのみ影響します。
例えば、MAX(time) の代わりにエイリアスを指定して max_time というカラム名にすることができます。これにより、出力がより読みやすく、分かりやすくなります。
スワイプしてコーディングを開始
各路線ごとに次の駅までの最長所要時間を求めてください。これにより、各地下鉄路線間での最長移動時間を把握できます。この課題では、MAX()関数を使用し、エイリアスとしてmax_timeを指定し、line_name列でデータをグループ化します。
簡単な手順
line_nameテーブルからtime_to_next_station列とmetro_travel_time列の最大値を取得します。- 最大値にはエイリアス
max_timeを付与します。 - データは
line_name列でグループ化します。
解答
フィードバックありがとうございます!
single
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください