小编典典

Postgres:一次选择即可获得最小值,最大值,合计值

sql

我正在使用Postgresql 8.4。我有一个这样的表:

 type | value
------+-------
 1    | 5
 2    | 6
 1    | 4
 3    | 10

我想写一个选择,该选择将给我最小值和最大值,并且所有类型的总计为integer[]。理想的结果应该是:

 min | max | types
-----+-----+-----------
 4   | 10  | {1, 2, 3}

要获得最小值和最大值,我已经有:

SELECT MIN(value) min, MAX(value) max FROM table;

为了获得独立选择的类型,我使用:

SELECT array_agg(DISTINCT type) types FROM table;

如何将它们组合成一个选择(效率不是很高)?


阅读 236

收藏
2021-04-28

共1个答案

小编典典

SELECT array_agg(DISTINCT type) AS types,
       MIN(value) AS min,
       MAX(value) AS max
FROM your_table
2021-04-28