PostgreSQL百分位控制和聚合

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 (

我必须用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
            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”不再可用。