希望使用 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
2条答案
按热度按时间ubbxdtey1#
你可以使用
case
表达式:或者,更简单的是,使用算术:
我不会用“四分位数”这个词来形容这个专栏。四分位数表示四个大小相等的箱子(或者至少在给定重复值时尽可能接近)。
mtb9vblg2#
width\u bucket函数最适合这种情况:
width\u bucket(oracle)允许您构造等宽直方图,其中直方图范围被划分为大小相同的区间(将此函数与创建等高直方图的ntile进行比较。)
它是由oracle,snowflake,postgresql,。。。
您的代码:
db<>小提琴演示
输出: