SQL 懶人包(2)
另一個常見的資料庫作業是彙總。也就是把資料切成多個區塊,然後對每個區塊做摘要。
在 SQL 中,你可以用 GROUP BY 指令來完成。這個指令會把資料分群,並將你在 SELECT 敘述中指定的函式套用到每個群組。
例如,若你想要計算每個起飛機場的航班數量,可以使用下列查詢:
SELECT COUNT(*) FROM flights
GROUP BY origin;
GROUP BY origin 告訴 SQL,輸出結果要針對 origin 欄位的每個唯一值各有一列。SELECT 敘述則選擇你要填入每個欄位的值。這裡,我們想要對每個群組的每一列做 COUNT()。
你也可以針對多個欄位做 GROUP BY。這樣做時,結果表會針對各欄位唯一值的每一種組合各有一列。以下的查詢會計算從 SEA 與 PDX 飛往每個目的地機場的航班數:
SELECT origin, dest, COUNT(*) FROM flights
GROUP BY origin, dest;
輸出會針對 origin 與 dest 的每個值組合各有一列(也就是列出每個出發與目的地的組合)。同時也會有一個欄位放入各群組所有列的 COUNT()。
想更深入了解 SQL,請參考這裡的課程: here。
這個查詢會取得什麼資訊?提醒一下,flights 資料表包含 2014 與 2015 年從 PDX 與 SEA 起飛的航班資訊。注意,AVG() 會計算某欄位的平均值!
SELECT AVG(air_time) / 60 FROM flights
GROUP BY origin, carrier;
本練習屬於課程
