mirror of
https://github.com/postgres/postgres.git
synced 2026-06-04 06:45:49 -04:00
73ad6ca96c
comments on one of the optimizer functions a lot more clear, adds a summary of the recent KSQO discussion to the comments in the code, adds regression tests for the bug with sequence state Tom fixed recently and another reg. test, and removes some PostQuel legacy stuff: ExecAppend -> ExecInsert, ExecRetrieve -> ExecSelect, etc. Error messages remain unchanged until a vote. Neil Conway
33 lines
1010 B
SQL
33 lines
1010 B
SQL
--
|
|
-- SELECT_HAVING
|
|
--
|
|
|
|
-- load test data
|
|
CREATE TABLE test_having (a int, b int, c char(8), d char);
|
|
INSERT INTO test_having VALUES (0, 1, 'XXXX', 'A');
|
|
INSERT INTO test_having VALUES (1, 2, 'AAAA', 'b');
|
|
INSERT INTO test_having VALUES (2, 2, 'AAAA', 'c');
|
|
INSERT INTO test_having VALUES (3, 3, 'BBBB', 'D');
|
|
INSERT INTO test_having VALUES (4, 3, 'BBBB', 'e');
|
|
INSERT INTO test_having VALUES (5, 3, 'bbbb', 'F');
|
|
INSERT INTO test_having VALUES (6, 4, 'cccc', 'g');
|
|
INSERT INTO test_having VALUES (7, 4, 'cccc', 'h');
|
|
INSERT INTO test_having VALUES (8, 4, 'CCCC', 'I');
|
|
INSERT INTO test_having VALUES (9, 4, 'CCCC', 'j');
|
|
|
|
SELECT b, c FROM test_having
|
|
GROUP BY b, c HAVING count(*) = 1;
|
|
|
|
-- HAVING is equivalent to WHERE in this case
|
|
SELECT b, c FROM test_having
|
|
GROUP BY b, c HAVING b = 3;
|
|
|
|
SELECT lower(c), count(c) FROM test_having
|
|
GROUP BY lower(c) HAVING count(*) > 2 OR min(a) = max(a);
|
|
|
|
SELECT c, max(a) FROM test_having
|
|
GROUP BY c HAVING count(*) > 2 OR min(a) = max(a);
|
|
|
|
DROP TABLE test_having;
|
|
|