Use expressions in the ORDER BY in bool_agg

pull/2030/head
Marco Slot 2018-02-27 23:52:44 +01:00
parent e79db17b91
commit dc7213a11c
2 changed files with 5 additions and 5 deletions

View File

@ -16,11 +16,11 @@ SELECT bool_and(flag), bool_or(flag), every(flag) FROM bool_test;
f | t | f f | t | f
(1 row) (1 row)
SELECT kind, bool_and(flag), bool_or(flag), every(flag) FROM bool_test GROUP BY kind ORDER BY kind; SELECT kind, bool_and(flag), bool_or(flag), every(flag) FROM bool_test GROUP BY kind ORDER BY 2;
kind | bool_and | bool_or | every kind | bool_and | bool_or | every
------+----------+---------+------- ------+----------+---------+-------
88 | t | t | t
99 | f | t | f 99 | f | t | f
88 | t | t | t
(2 rows) (2 rows)
-- expressions in aggregate -- expressions in aggregate
@ -30,7 +30,7 @@ SELECT bool_or(val > 2 OR id < 2), bool_and(val < 3) FROM bool_test;
t | f t | f
(1 row) (1 row)
SELECT kind, bool_or(val > 2 OR id < 2), bool_and(val < 3) FROM bool_test GROUP BY kind ORDER BY kind; SELECT kind, bool_or(val > 2 OR id < 2), bool_and(val < 3) FROM bool_test GROUP BY kind ORDER BY 3;
kind | bool_or | bool_and kind | bool_or | bool_and
------+---------+---------- ------+---------+----------
88 | t | f 88 | t | f

View File

@ -8,11 +8,11 @@ INSERT INTO bool_test VALUES (1, 1, true, 99), (2, 2, false, 99), (2, 3, true, 8
-- mix of true and false -- mix of true and false
SELECT bool_and(flag), bool_or(flag), every(flag) FROM bool_test; SELECT bool_and(flag), bool_or(flag), every(flag) FROM bool_test;
SELECT kind, bool_and(flag), bool_or(flag), every(flag) FROM bool_test GROUP BY kind ORDER BY kind; SELECT kind, bool_and(flag), bool_or(flag), every(flag) FROM bool_test GROUP BY kind ORDER BY 2;
-- expressions in aggregate -- expressions in aggregate
SELECT bool_or(val > 2 OR id < 2), bool_and(val < 3) FROM bool_test; SELECT bool_or(val > 2 OR id < 2), bool_and(val < 3) FROM bool_test;
SELECT kind, bool_or(val > 2 OR id < 2), bool_and(val < 3) FROM bool_test GROUP BY kind ORDER BY kind; SELECT kind, bool_or(val > 2 OR id < 2), bool_and(val < 3) FROM bool_test GROUP BY kind ORDER BY 3;
-- 1 & 3, 1 | 3 -- 1 & 3, 1 | 3
SELECT bit_and(val), bit_or(val) FROM bool_test WHERE flag; SELECT bit_and(val), bit_or(val) FROM bool_test WHERE flag;