开始使用免费开始使用

SQL in a nutshell (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;

输出会包含 origindest 各取值的所有组合对应的一行(即列出每个始发地与目的地的组合)。同时还会有一列给出每个分组中所有行的 COUNT()

如果需要更深入地学习 SQL,可以查看这里

这个查询会得到什么信息?请记住,flights 表包含 2014 和 2015 年从 PDX 与 SEA 起飞的航班信息。注意,AVG() 函数用于获取某列的平均值!

SELECT AVG(air_time) / 60 FROM flights
GROUP BY origin, carrier;

本练习是课程的一部分

PySpark 基础

查看课程

动手互动练习

通过我们的互动练习之一,将理论转化为实践

开始练习