WITHINE GROUP子句如何在此百分比函数中工作


SELECT 
sum(p0010001) AS "County Sum",
round(avg(p0010001), 0) AS "County Average",
percentile_cont(.5) WITHIN GROUP (ORDER BY p0010001) AS "County Median"
FROM us_counties_2010;

我无法了解WITHING GROUP子句在这个PostgreSQL聚合函数中的作用。

p0010001是特定状态和数据类型的总体整数

我认为您在这里寻找一些不存在的原因或意义。整个构造WITHIN GROUP (ORDER BY ...)只是使百分位函数运行的神奇短语。我不认为你可以像对待其他分析/窗口函数那样,把它拆开并理解单个组件。如果你想使用内置的百分位数,你需要反复念咒语。这当然是SQL语言中不太明智的部分之一。(我不知道有序集聚合函数是SQL规范的一部分,还是PostgreSQL的扩展(

最新更新