Menu
CoddyTech

内置聚合函数(二)

本课属于 Coddy SQL 学习旅程的“基础知识”单元。第 35 课,共 72 课。

有时,我们需要以更复杂的方式使用聚合函数,例如将每一行与聚合值进行比较。这时,嵌套查询就派上用场了。

如果你想将各行与聚合值结合起来进行计算,就需要使用嵌套查询。原因如下:
这样无法得到你想要的逐行结果:

SELECT value + MIN(value)
FROM table1

原因是,聚合函数作用于整列,而“value”引用则试图逐行处理。为了解决这个问题,我们使用嵌套查询:

SELECT value + (SELECT MIN(value) FROM table1)
FROM table1

这是可行的,因为嵌套查询 (SELECT MIN(value) FROM table1) 会先执行并返回单个值,随后可在主查询中用于每一行。

嵌套聚合的常见用例:
1. 将每个值与平均值进行比较

2. 计算占总数的百分比

3. 查找与最大值或最小值的差异

challenge icon

挑战

简单

可用的表和列:

  • items: id, price

计算每件商品的价格高于所有商品平均价格多少。显示商品 ID、价格以及与平均价格的差值。将差值列命名为 diff_from_avg。

按差值降序排列结果。

亲手试试

quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: SQL 在线编辑器