如何在Redshift的学生表中单独添加学生ID的不同标记?
在oracle中可行,
SELECT SUM(distinct marks) OVER (PARTITION BY studentid) FROM student;
但这在Redshift中无效!我想在没有单独使用SELECT语句的情况下解决这个问题。
答案 0 :(得分:1)
当窗口函数不可用时,您必须使用JOIN
或相关查询。
相关查询(仅选择)
SELECT t.* ,
(SELECT sum(distinct marks) FROM student s
WHERE s.studentid = t.studentid) as stud_sum
FROM student t
答案 1 :(得分:0)
窗口功能是着名的&在Redshift有影响力。
由于Redshift DB是Postgres的一个分支,因此Postgres 8.x支持的大多数Windows功能都可以灵活使用。
对于给出SQL,你可以写一些东西
SELECT studentid, SUM(distinct marks)
OVER (PARTITION BY studentid) FROM student;
SQL应该在Redshift中工作。以下是所有Window功能支持的documentation: