gpt4 book ai didi

sql-server - 使用 NTILE 计算百分位数排名?

转载 作者:行者123 更新时间:2023-12-02 18:56:32 27 4
gpt4 key购买 nike

需要计算每个学生单次测试分数的百分位排名(第 1 - 99 个百分位)。

我对 NTILE 的 msdn 定义有点困惑,因为它没有明确提及百分位数排名。我需要某种保证 NTILE 是用于计算百分位数排名的正确关键字。

declare @temp table
(
StudentId int,
Score int
)
insert into @temp
select 1, 20
union
select 2, 25
.....

select NTILE(100) OVER (order by Score) PercentileRank
from @temp

它对我来说看起来是正确的,但是这是计算百分位排名的正确方法吗?

最佳答案

NTILE 与百分位数排名绝对不同。 NTILE 只是简单地将一组数据除以提供的数量(如 RoyiNamir 上面所述)。如果您将这两个函数的结果绘制成图表,NTILE 将是一条从 1 到 n 的完美线性线,而百分位数排名[通常]将有一些曲线,具体取决于您的数据。

百分位排名比简单地除以 N 要复杂得多。然后,它获取每一行的数字并找出它在分布中的位置,并在必要时进行插值(这非常消耗 CPU 资源)。我有一个包含 525,000 行的 Excel 工作表,它以 100% 的速度支配我的 8 核机器的 CPU 15-20 分钟,只是为了计算出单列的 PERCENTRANK 函数。

关于sql-server - 使用 NTILE 计算百分位数排名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9829377/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com