我必须使用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已经被聚合。
有关如何重建查询的任何建议吗?
提前谢谢你, 洛伦佐