我试图弄清楚 SQL Server Denali CTP 3 中这些新引入的功能是如何工作的,但没有正确理解。
当然有一些关于此的文章,但没有明确提及它们是如何工作的……换句话说,数学在幕后运行。
谁能用一些简单的例子来解释一下。
我在这里找到了一个,但是当我试图将这个作者的逻辑放在第一个链接中以获得第 5 项的 Percent_Rank 和 Cume_Dist 时,我得到了不同的结果。
此查询中的列将相等:
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