gpt4 book ai didi

sql - T-SQL : Calculating the Nth Percentile Value from column

转载 作者:行者123 更新时间:2023-12-04 13:28:17 25 4
gpt4 key购买 nike

我有一列数据,其中一些是NULL值,我希望从中提取单个第90个百分位值:

ColA
-----
NULL
100
200
300
NULL
400
500
600
700
800
900
1000

对于上述内容,我正在寻找一种技术,当搜索第90个百分位数时返回900,第80个百分位数则返回800。类似的函数是AVG(ColA),对于上述数据返回550,或者MIN( ColA),返回100,依此类推。

有什么建议?

最佳答案

如果您想精确地获得第90个百分位值(不包括NULL),我建议直接进行计算。以下版本计算行数和行数,并选择适当的值:

select max(case when rownum*1.0/numrows <= 0.9 then colA end) as percentile_90th
from (select colA,
row_number() over (order by colA) as rownum,
count(*) over (partition by NULL) as numrows
from t
where colA is not null
) t

我将条件放在SELECT子句中,而不是WHERE子句中,因此您可以轻松获得第50个百分位数,第17个百分位数或任何所需的值。

关于sql - T-SQL : Calculating the Nth Percentile Value from column,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11906283/

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