gpt4 book ai didi

SQL:查找百分位数

转载 作者:行者123 更新时间:2023-12-04 14:21:22 24 4
gpt4 key购买 nike

我有一个表,其中有一个名为 Score 的数字列.我想对该表执行查询,其结果将有 100 行,每行代表与该百分位数对应的分数。例如,结果可能如下所示:

 Percentile | Score
---------------------
01 | 10
02 | 12
03 | 12
04 | 17
... | ...
99 | 1684
100 | 1685

以上结果表中的Score值为原表中存在的实际得分值,未进行插值。插值结果会更好,但不是必需的。

可能有几种启发式方法可以产生这样的结果。我今天使用的(在代码中)基本上如下 - 与百分位数对应的 Score 值将是其得分值:分数较小的行数除以总行数,四舍五入为整数, 等于百分位数(我希望这很清楚)

如果它们更容易实现,我可以考虑其他启发式方法

我正在使用 MS-SQL,但希望有一个同样适用于 MySQL 的解决方案。

实现这一目标的最佳方法是什么?

最佳答案

SQL Server :

SELECT  percentile, score
FROM (
SELECT ROW_NUMBER() OVER (PARTITION BY percentile ORDER BY score) AS rn, percentile, score
FROM (
SELECT score, NTILE(100) OVER (ORDER BY score) AS percentile
FROM mytable
) q
) q2
WHERE rn = 1

关于SQL:查找百分位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1410175/

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