我正在使用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;
如何将这些组合成一个选择(效率不是太低)?
答案 0 :(得分:2)
SELECT array_agg(DISTINCT type) AS types,
MIN(value) AS min,
MAX(value) AS max
FROM your_table
答案 1 :(得分:1)
尝试此查询:
SELECT * FROM
(SELECT MIN(value),MAX(value) FROM table1)t1,
(SELECT array_agg(DISTINCT type) FROM table1)t2;