我还看过其他有关在Redshift中使用中位数()窗口函数的文章,但是您如何将其与在末尾具有group的查询一起使用?
例如,假设表过程为:
Course | Subject | Num_Students
-------------------------------
1 | Math | 4
2 | Math | 6
3 | Math | 10
4 | Science | 2
5 | Science | 10
6 | Science | 12
我想获得每个课程科目的学生人数的中位数。我将如何编写给出以下结果的查询:
Subject | Median
-----------------------
Math | 6
Science | 10
我试过了:
SELECT
subject, median(num_students) over ()
FROM
course
GROUP BY 1
;
但是它列出了每次出现的主题,并且在各个主题之间都列出了相同的中位数(这是假数据,因此它返回的实际值不是6,而只是显示所有主题都相同):
Subject | Median
-----------------------
Math | 6
Math | 6
Math | 6
Science | 6
Science | 6
Science | 6
您只需要删除它的“ over()”部分。
SELECT subject, median(num_students) FROM course GROUP BY 1;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句