我正在使用Postgresql 8.4。我有一个这样的表:
type | value ------+------- 1 | 5 2 | 6 1 | 4 3 | 10
我想写一个选择,该选择将给我最小值和最大值,并且所有类型的总计为integer[]。理想的结果应该是:
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;
如何将它们组合成一个选择(效率不是很高)?
SELECT array_agg(DISTINCT type) AS types, MIN(value) AS min, MAX(value) AS max FROM your_table