SELECT列OVER(PARTITION BY列)

时间:2016-06-11 04:35:18

标签: sql hana

TABLE BEING QUERIED (tableA)

假设我想在每天的第75百分位检索游泳运动员和他们的时间。

这就是我想要做的事情:

SELECT tableA.DATE, tableA.SWIMMER, tableA.TIME
                OVER (PARTITION BY tableA.DATE)
                FROM tableA
                WHERE RANK = CEIL(0.75 * NUM_OF_SWIMMERS);

但是在OVER声明中这个错误。

获取所需数据的最佳方式是什么?

谢谢!

1 个答案:

答案 0 :(得分:2)

您的错误是窗口函数的OVER子句需要ORDER BY子句。

但假设num_swimmers,为什么不返回

select
   date,
swimmer,
time
from tablea
where 
RANK = CEIL(0.75 * NUM_OF_SWIMMERS)

WHERE子句将确保返回的唯一行是给定日期的第75个百分位数