在SQL中,HAVING子句和WHERE子句都用于篩選數據,但它們的使用場景有所不同。
- WHERE子句:
WHERE子句用于在對查詢的原始數據進行篩選時使用。它通常用于篩選行級別的數據,即對每一行數據進行判斷,如果符合條件則保留,不符合條件則丟棄。
示例:
SELECT *
FROM table_name
WHERE column_name = 'value';
- HAVING子句:
HAVING子句用于在對已經進行聚合操作(如COUNT、SUM、AVG等)的數據進行篩選時使用。它通常用于篩選分組后的數據,即對每個分組的數據進行判斷,如果符合條件則保留,不符合條件則丟棄。
示例:
SELECT column_name, COUNT(*)
FROM table_name
GROUP BY column_name
HAVING COUNT(*) > 1;
總結:
- WHERE子句用于篩選原始數據的行級別數據。
- HAVING子句用于篩選已經進行聚合操作后的分組級別數據。