SQL SELECT 語句中 HAVING 與 WHERE 子句的區別
在 SQL SELECT 語句中,HAVING 和 WHERE 子句在資料篩選上有不同的用途。理解它們的用法對於獲得準確的查詢結果至關重要。
HAVING 子句
HAVING 子句在使用 GROUP BY 子句進行聚合後套用。它根據應用於聚合值的條件過濾分組後的行。例如:
<code class="language-sql">SELECT City, COUNT(1) AS CNT FROM Address WHERE State = 'MA' GROUP BY City HAVING COUNT(1) > 5</code>
此查詢傳回一個包含馬薩諸塞州城市及其地址數量(超過 5 個)的表。
WHERE 子句
相反,WHERE 子句在聚合之前過濾行。它評估單一行的條件,並僅選擇滿足條件的行。例如:
<code class="language-sql">SELECT City, COUNT(1) AS CNT FROM Address WHERE State = 'MA' AND City LIKE '%ton' GROUP BY City</code>
此查詢傳回一個包含馬薩諸塞州城市(名稱以「ton」結尾)及其地址數量的表。
關鍵區別
HAVING 和 WHERE 之間的主要區別在於它們的應用時機:
透過利用這種區別,開發人員可以精確地操作和過濾 SQL SELECT 語句中的數據,以檢索所需的結果。
以上是SQL 中的 HAVING 與 WHERE:何時使用每個子句進行資料過濾?的詳細內容。更多資訊請關注PHP中文網其他相關文章!