@@ -130,39 +130,32 @@ SELECT few.dataa, count(*), min(id), max(id), unnest('{1,1,3}'::int[]) FROM few
130
130
(2 rows)
131
131
132
132
-- check HAVING works when GROUP BY does [not] reference SRF output
133
- SELECT dataa, generate_series(1,3 ), count(*) FROM few GROUP BY 1 HAVING count(*) > 1;
133
+ SELECT dataa, generate_series(1,1 ), count(*) FROM few GROUP BY 1 HAVING count(*) > 1;
134
134
dataa | generate_series | count
135
135
-------+-----------------+-------
136
136
a | 1 | 2
137
- a | 2 | 2
138
- a | 3 | 2
139
- (3 rows)
137
+ (1 row)
140
138
141
- SELECT dataa, generate_series(1,3 ), count(*) FROM few GROUP BY 1, 2 HAVING count(*) > 1;
139
+ SELECT dataa, generate_series(1,1 ), count(*) FROM few GROUP BY 1, 2 HAVING count(*) > 1;
142
140
dataa | generate_series | count
143
141
-------+-----------------+-------
144
142
a | 1 | 2
145
- a | 2 | 2
146
- a | 3 | 2
147
- (3 rows)
143
+ (1 row)
148
144
149
145
-- it's weird to have GROUP BYs that increase the number of results
150
- SELECT few.dataa, count(*), min(id), max(id) FROM few GROUP BY few.dataa;
151
- dataa | count | min | max
152
- -------+-------+-----+-----
153
- b | 1 | 3 | 3
154
- a | 2 | 1 | 2
146
+ SELECT few.dataa, count(*) FROM few WHERE dataa = 'a' GROUP BY few.dataa ORDER BY 2;
147
+ dataa | count
148
+ -------+-------
149
+ a | 2
150
+ (1 row)
151
+
152
+ SELECT few.dataa, count(*) FROM few WHERE dataa = 'a' GROUP BY few.dataa, unnest('{1,1,3}'::int[]) ORDER BY 2;
153
+ dataa | count
154
+ -------+-------
155
+ a | 2
156
+ a | 4
155
157
(2 rows)
156
158
157
- SELECT few.dataa, count(*), min(id), max(id) FROM few GROUP BY few.dataa, unnest('{1,1,3}'::int[]);
158
- dataa | count | min | max
159
- -------+-------+-----+-----
160
- b | 2 | 3 | 3
161
- a | 4 | 1 | 2
162
- b | 1 | 3 | 3
163
- a | 2 | 1 | 2
164
- (4 rows)
165
-
166
159
-- SRFs are not allowed in aggregate arguments
167
160
SELECT min(generate_series(1, 3)) FROM few;
168
161
ERROR: set-valued function called in context that cannot accept a set
0 commit comments