HAVING子句用於過濾GROUP BY分組彙總後的資料。HAVING子句必須與彙總函式和GROUP BY子句一起使用,在分組和彙總計算完成後,再對分組進行過濾,篩選掉不滿足條件的分組。本文介紹HAVING的用法和樣本。
[ HAVING condition ] 注意事項
HAVING條件中引用的列必須為分組列或引用了彙總函式結果的列。HAVING子句必須與彙總函式以及GROUP BY子句一起使用,用於對GROUP BY分組進行過濾,去掉不滿足條件的分組。
樣本
在CUSTOMER表中,進行分組查詢,查詢賬戶餘額大於指定值的記錄。
SELECT count(*), mktsegment, nationkey,
CAST(sum(acctbal) AS bigint) AS totalbal
FROM customer
GROUP BY mktsegment, nationkey
HAVING sum(acctbal) > 5700000
ORDER BY totalbal DESC;
_col0 | mktsegment | nationkey | totalbal
-------+------------+-----------+----------
1272 | AUTOMOBILE | 19 | 5856939
1253 | FURNITURE | 14 | 5794887
1248 | FURNITURE | 9 | 5784628
1243 | FURNITURE | 12 | 5757371
1231 | HOUSEHOLD | 3 | 5753216
1251 | MACHINERY | 2 | 5719140
1247 | FURNITURE | 8 | 5701952