SELECT 列超过(PARTITION BY 列)

SELECT columns OVER (PARTITION BY column)

假设我想检索游泳者及其每天在第 75 个百分位的时间。

这就是我想要做的:

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

但是这个错误在 OVER 语句。

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

谢谢!

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

但假设 num_swimmers ,为什么不只是 return

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

?

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