gpt4 book ai didi

sql - 在 MS SQL 中计算百分位排名

转载 作者:行者123 更新时间:2023-12-03 07:31:49 24 4
gpt4 key购买 nike

在 MSSQL 2005 中计算百分位排名(例如第 90 个百分位或中位数)的最佳方法是什么?

我希望能够为单列分数选择第 25 个、中位数和第 75 个百分位数(最好在单个记录中,以便我可以将平均值、最大值和最小值结合起来)。例如,结果的表输出可能是:

Group  MinScore  MaxScore  AvgScore  pct25  median  pct75
----- -------- -------- -------- ----- ------ -----
T1 52 96 74 68 76 84
T2 48 98 74 68 75 85

最佳答案

我认为这将是最简单的解决方案:

SELECT TOP N PERCENT FROM TheTable ORDER BY TheScore DESC

其中 N = (100 - 所需的百分位数)。因此,如果您想要第 90 个百分位数中的所有行,您将选择前 10%。

我不确定您所说的“最好在单个记录中”是什么意思。您的意思是计算单个记录的给定分数会落入哪个百分位?例如您是否希望能够做出诸如“您的分数是 83,这使您处于第 91 个百分位”之类的陈述。 ?

编辑:好的,我对您的问题进行了更多思考并提出了这种解释。您是在问如何计算特定百分位数的截止分数吗?例如像这样:要进入第 90 个百分位数,您的分数必须大于 78。

如果是这样,则此查询有效。不过我不喜欢子查询,所以根据它的用途,我可能会尝试找到更优雅的解决方案。但是,它确实返回一个带有单个分数的记录。
-- Find the minimum score for all scores in the 90th percentile
SELECT Min(subq.TheScore) FROM
(SELECT TOP 10 PERCENT TheScore FROM TheTable
ORDER BY TheScore DESC) AS subq

关于sql - 在 MS SQL 中计算百分位排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/79688/

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