【问题标题】:What is the mathematical way of calculating PERCENT_RANK() ,CUME_DIST() ,PERCENTILE_CONT() and PERCENTILE_DISC()计算 PERCENT_RANK() 、CUME_DIST() 、PERCENTILE_CONT() 和 PERCENTILE_DISC() 的数学方法是什么
【发布时间】:2011-10-12 10:51:20
【问题描述】:

我试图弄清楚 SQL Server Denali CTP 3 中这些新引入的功能是如何工作的,但没有正确理解。

this 上当然有一些文章,但没有明确提及它们是如何工作的......换句话说,数学在幕后运行。

谁能用一些简单的例子来解释一下。

我找到了一个here,但是当我尝试将作者的逻辑放在第一个链接中以获取第 5 项的 Percent_Rank 和 Cume_Dist 时,我得到了不同的结果。

【问题讨论】:

    标签: sql sql-server math sql-server-2012 statistics


    【解决方案1】:

    此查询中的列将相等:

    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
    

    【讨论】:

    • 先生,谢谢……但我正在关注计算背后的数学/逻辑是什么……谢谢
    • @mcUser:请查看子查询代码,您可以轻松找出逻辑。 PERCENT_RANK 是不包括当前值的排名,CUME_DIST 是包括当前值的排名。
    猜你喜欢
    • 2014-06-28
    • 2019-02-18
    • 1970-01-01
    • 1970-01-01
    • 2015-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多