Каков математический способ вычисления PERCENT_RANK (), CUME_DIST (), PERCENTILE_CONT () и PERCENTILE_DISC () - PullRequest
3 голосов
/ 25 июля 2011

Я пытаюсь выяснить, как эти недавно введенные функции в SQL Server Denali CTP 3 работают, но не поняли должным образом.

Есть, конечно, некоторые статьи по по этому , но не было ясно упомянуто, как они работают ... другими словами, математика, бегущая за сценой.

Может ли кто-нибудь объяснить это на простом примере.

Я нашел один здесь , но когда я попытался поместить логику этого автора в первую ссылку для получения Percent_Rank и Cume_Dist 5-го элемента, я получил другой результат.

1 Ответ

6 голосов
/ 25 июля 2011

Столбцы в этом запросе будут равны:

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
...