聚合函数
Coddy 高级 SQL 课程的第 11 课,共 13 课。
聚合函数用于计算截至当前行的 AVG()、MAX() 或其他聚合函数。
例如,我们可以计算每个结束时间段之前获得的最大收入:
| month | revenue |
| 4 | 40 |
| 5 | 20 |
| 6 | 60 |
| 7 | 55 |
| 8 | 61 |
SELECT month, revenue, MAX(revenue) OVER (ORDER BY month ASC) as max_revenue
from table1这将返回:
| month | revenue | max_revenue |
| 4 | 40 | 40 |
| 5 | 20 | 40 |
| 6 | 60 | 60 |
| 7 | 55 | 60 |
| 8 | 61 | 61 |
第 4 个月和第 5 个月的最大收入是 40,第 5 个月和第 6 个月的收入是 60,第 8 个月的收入是 61。这是因为当它找到更高的新收入时,就会舍弃旧值,并使用目前为止的最大值。
对于 AVG() 函数,结果如下:
SELECT month, revenue, AVG(revenue) OVER (ORDER BY month ASC) as avg_revenue
from table1| month | revenue | avg_revenue |
| 4 | 40 | 40 |
| 5 | 20 | 30 |
| 6 | 60 | 40 |
| 7 | 55 | 43.75 |
| 8 | 61 | 47.2 |
挑战
简单书有很多页,每页都有很多字。
在这次挑战中,我们会计算这些书的多种指标。
获取每本书截至每一页的总字数、最大字数、最小字数和平均字数,并分别将这些列命名为:total_words、max_words、min_words、avg_words。此外,为每本书按以下比率升序计算页面的密集排名:(avg_words-min_words)/(total_words-min_words),并将这一列命名为 ratio_rank。最后,按 book 和 ratio_rank 升序排列结果。
亲手试试
高级 SQL中的所有课
自己练习: Python 在线编译器