かんたんSQL(2)
データベースでよく行う作業に集計があります。データをいくつかのまとまりに分けて、それぞれを要約することです。
SQL では GROUP BY コマンドでこれを行います。GROUP BY はデータをグループに分け、SELECT 文で指定した関数を各グループに適用します。
たとえば、出発地ごとのフライト数を数えたい場合は次のように書けます。
SELECT COUNT(*) FROM flights
GROUP BY origin;
GROUP BY origin は、origin 列の一意な値ごとに1行ずつ出力を作るよう SQL に指示します。SELECT 文では各列に入れたい値を指定します。ここでは各グループの行数を COUNT() で数えています。
GROUP BY は複数列でも可能です。その場合、結果の表には各列の一意な値のすべての組み合わせごとに1行ができます。次のクエリは、SEA と PDX から各到着空港へのフライト数を数えます。
SELECT origin, dest, COUNT(*) FROM flights
GROUP BY origin, dest;
出力には、origin と dest の値のすべての組み合わせ(つまり、出発地と到着地のペア)ごとに1行が含まれます。また、各グループ内の行数を示す COUNT() の列も含まれます。
SQL をさらに詳しく学ぶには、こちらをご覧ください。
このクエリはどんな情報を取得するでしょうか?flights テーブルには 2014 年と 2015 年に PDX と SEA を出発したフライトの情報が入っています。なお、AVG() は列の平均値を求めます!
SELECT AVG(air_time) / 60 FROM flights
GROUP BY origin, carrier;
この演習はコースの一部です
