PostgreSQL百分位控制和聚合
我必须用postgresql函数percentile_cont计算三个99%的分位数。 其中两个与单列相关,第三个是关于前两列的差异,但我必须计算内部联接后的最后一个,我不清楚如何做PostgreSQL百分位控制和聚合,postgresql,aggregate,Postgresql,Aggregate,我必须用postgresql函数percentile_cont计算三个99%的分位数。 其中两个与单列相关,第三个是关于前两列的差异,但我必须计算内部联接后的最后一个,我不清楚如何做 SELECT TableA1.a, TableA1.b99, TableA2.b99, **percentile_cont(0.99) WITHIN GROUP (ORDER BY (TableA1.b - TableA2.b))::bigint** FROM (
SELECT
TableA1.a,
TableA1.b99,
TableA2.b99,
**percentile_cont(0.99) WITHIN GROUP (ORDER BY (TableA1.b - TableA2.b))::bigint**
FROM
(
SELECT
a,
percentile_cont(0.99) WITHIN GROUP (ORDER BY (b))::bigint as b99
FROM TableA
GROUP BY
a
) TableA1
INNER JOIN
(
SELECT
a,
percentile_cont(0.99) WITHIN GROUP (ORDER BY (b))::bigint as b99
FROM TableA
GROUP BY
a
) TableA2
ON
TableA1.a = TableA2.a
根据TableA1.b-TableA2.b::bigint在组顺序中选择的第四个字段percentile_cont0.99是不可能的,因为来自两个子查询的字段b已经聚合
关于如何重建查询有什么建议吗
提前谢谢大家,,
Lorenzo更清楚地说,我的问题正是TableA1.b-TableA2.b百分位计算,我应该在连接后计算,但我不能,因为字段“b”不再可用。更清楚地说,我的问题正是TableA1.b-TableA2.b百分位计算,我应该在连接后计算,但我不能,因为字段“b”不再可用。