postgre这是一个有效的PERCENTIALE_CONT SQL查询吗



我正试图运行SQL查询,以在某个组内的表中查找第50个百分位,但随后我也将结果分组到同一字段中。以下是我的查询,例如关于tpch的国家表:

SELECT 
regionkey,
PERCENTILE_CONT(0.5) WITHIN GROUP(ORDER BY regionkey)
FROM "tpch/nation"
GROUP BY regionkey
ORDER BY regionkey

这是一个有效的查询吗?我正试图通过运行各种不同百分比的查询来对我的代码进行QA。Postgres为上述查询返回此结果:

regionkey    | percentile_cont 
-------------+-----------------
0 |               0
1 |               1
2 |               2
3 |               3
4 |               4
(5 rows)

但我的问题是,在现实世界中,会有人尝试运行这种类型的查询吗?我是聚合函数的新手,特别是百分位函数。

您可以使用percentile_cont()来获得某个有序值的百分比。例如,如果您有一个区域的population列,那么您可以将中位数总体计算为:

SELECT regionkey,
PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY population)
FROM "tpch/nation"
GROUP BY regionkey
ORDER BY regionkey;

ORDER BY中使用regionkey是没有意义的。在每组中,regionkey只有一个值。因此,PERCENTILE_CONT()只能返回该值。

然而,它对几乎任何其他列都非常有用。

相关内容

  • 没有找到相关文章

最新更新