cla*_*vid 8 group-by window-functions amazon-redshift
我已经看过其他关于在Redshift中使用median()窗口函数的帖子,但是你如何将它与最后有一个group by的查询一起使用?
例如,假设表课程:
Course | Subject | Num_Students
-------------------------------
1 | Math | 4
2 | Math | 6
3 | Math | 10
4 | Science | 2
5 | Science | 10
6 | Science | 12
Run Code Online (Sandbox Code Playgroud)
我想得到每门课程的学生中位数.我如何编写一个给出以下结果的查询:
Subject | Median
-----------------------
Math | 6
Science | 10
Run Code Online (Sandbox Code Playgroud)
我试过了:
SELECT
subject, median(num_students) over ()
FROM
course
GROUP BY 1
;
Run Code Online (Sandbox Code Playgroud)
但是它列出了主题的每一次出现以及相同主题的相同中位数数字(这是假数据,因此它返回的实际值不是6,但只显示所有主题的相同):
Subject | Median
-----------------------
Math | 6
Math | 6
Math | 6
Science | 6
Science | 6
Science | 6
Run Code Online (Sandbox Code Playgroud)
以下内容将为您提供所需的确切结果:
SELECT distinct
subject, median(num_students) over(partition by Subject)
FROM
course
order by Subject;
Run Code Online (Sandbox Code Playgroud)
小智 2
您只需删除其中的“over()”部分即可。
SELECT subject, median(num_students) FROM course GROUP BY 1;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4000 次 |
| 最近记录: |