gpt4 book ai didi

sql - 如何使用列值范围应用 NTILE(4)?

转载 作者:行者123 更新时间:2023-12-04 15:27:43 25 4
gpt4 key购买 nike

想用NTILE以林地占总土地面积的百分比查看国家的分布。我想使用的列中值的范围是从 0.00053 到非常接近 98.25,并且国家/地区在该范围所隐含的四分位数之间分布不均匀,即 0 到 25、25 到 50、50 到 75,以及大约 75 到 100。相反,NTILE只是将表分成具有相同行数的四组。我如何使用 NTILE根据值分配分位数?

SELECT country, forest, pcnt_forest,
NTILE(4) OVER(ORDER BY pcnt_forest) AS quartile
FROM percent_forest

最佳答案

您可以使用 case表达:

select pf.*,
(case when pcnt_forest < 0.25 then 1
when pcnt_forest < 0.50 then 2
when pcnt_forest < 0.75 then 3
else 4
end) as bin
from percent_forest pf;

或者,更简单的是,使用算术:
select pf.*,
floor(pcnt_forest * 4) + 1 bin
from percent_forest pf;

我不会在本专栏中使用“四分位数”一词。四分位数意味着四个大小相等的 bin(或至少在给定重复值的情况下尽可能接近)。

关于sql - 如何使用列值范围应用 NTILE(4)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61929032/

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