内置聚合函数(二)
本课属于 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. 查找与最大值或最小值的差异
挑战
简单可用的表和列:
items:id,price
计算每件商品的价格高于所有商品平均价格多少。显示商品 ID、价格以及与平均价格的差值。将差值列命名为 diff_from_avg。
按差值降序排列结果。
亲手试试
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: SQL 在线编辑器