PostgreSQL percentile_cont和聚合

时间:2017-08-02 07:15:54

标签: postgresql aggregate

我必须使用postgresql函数percentile_cont计算三个99%的ile。 其中两个与单列相关,第三个是关于前两列的差异,但是我必须在内连接后计算最后一列,并且我不清楚如何做。

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

选择的第四个字段(percentile_cont(0.99)WITHIN GROUP(ORDER BY(TableA1.b - TableA2.b)):: bigint)是不可能的,因为来自两个子查询的字段b已经被聚合。

有关如何重建查询的任何建议吗?

提前谢谢你, 洛伦佐

0 个答案:

没有答案