blob: 5d96439018f5b65fc181e078f732cc97d076153b [file] [log] [blame]
# name: test/sql/aggregate/having/test_having.test
# description: Test HAVING clause
# group: [having]
statement ok
CREATE TABLE test (a INTEGER, b INTEGER);
statement ok
INSERT INTO test VALUES (11, 22), (13, 22), (12, 21)
# HAVING with condition on group
query IR
SELECT b, SUM(a) AS sum_c FROM test GROUP BY b HAVING b=21 ORDER BY b;
----
21 12.000000
# HAVING with condition on sum
query IR
SELECT b, SUM(a) FROM test GROUP BY b HAVING SUM(a) < 20 ORDER BY b;
----
21 12.000000
# HAVING without alias
query IR
SELECT b, SUM(a) AS sum_c FROM test GROUP BY b HAVING SUM(a) < 20 ORDER BY b;
----
21 12.000000
# HAVING on column not in aggregate
query IR
SELECT b, SUM(a) AS sum_c FROM test GROUP BY b HAVING COUNT(*) = 1 ORDER BY b;
----
21 12.000000
# expression in having
query IR
SELECT b, SUM(a) FROM test GROUP BY b HAVING SUM(a)+10>28;
----
22 24.000000
# uncorrelated subquery in having
query IR
SELECT b, SUM(a) FROM test GROUP BY b HAVING SUM(a)>(SELECT SUM(t.a)*0.5 FROM test t);
----
22 24.000000