我试图弄清楚SQL Server Denali CTP 3中这些新引入的函数是如何工作但是没有正确理解。
在this上有一些文章,但是没有明确提到它们是如何工作的......换句话说,数字在幕后运行。
有人可以用一些简单的例子解释一下。
我发现了一个here但是当我尝试将此作者的逻辑放在第一个链接中以获取第5个项目的Percent_Rank和Cume_Dist时,我得到了不同的结果。
答案 0 :(得分:6)
此查询中的列将相等:
SELECT value,
PERCENT_RANK() OVER (ORDER BY value),
(
SELECT COUNT(CASE WHEN qo.value < q.value THEN 1 END) / (COUNT(*) - 1)
FROM mytable qo
) AS percent_rank_formula,
CUME_DIST() OVER (ORDER BY value),
(
SELECT COUNT(CASE WHEN qo.value <= q.value THEN 1 END) / COUNT(*)
FROM mytable qo
) AS cume_dist_formula
FROM mytable q