SQL 中 WHERE 與 HAVING 子句的差異與使用方法
SQL(結構化查詢語言)是用於操作和檢索資料庫資料的強大工具。在使用 COUNT() 或 SUM() 等資料聚合函數時,理解 HAVING 和 WHERE 子句之間的差異至關重要。
概述
WHERE 子句用於在聚合之前過濾行。它根據表中各行評估條件。
HAVING 子句用於在聚合之後過濾行。它根據聚合後的數據評估條件。
關鍵區別
HAVING 和 WHERE 之間最關鍵的區別在於它們過濾的時機:
範例
考慮以下範例:
<code class="language-sql">SELECT City, COUNT(*) AS AddressCount FROM Address WHERE State = 'MA' GROUP BY City</code>
此查詢使用 WHERE 子句在分組之前選擇位於「MA」州的所有位址。然後,它按城市分組結果併計算每個城市中的地址數量。
現在,讓我們使用 HAVING 子句修改查詢:
<code class="language-sql">SELECT City, COUNT(*) AS AddressCount FROM Address WHERE State = 'MA' GROUP BY City HAVING AddressCount > 5</code>
在此修改後的查詢中,HAVING 子句用於在聚合後過濾結果。它只選擇地址數量超過 5 個的城市。
何時使用 WHERE 和 HAVING
透過理解 WHERE 和 HAVING 之間的時機差異,開發人員可以有效地根據在聚合之前或之後特定條件檢索資料庫中的資料。
以上是SQL 中的 WHERE 與 HAVING:何時使用每個子句進行資料過濾?的詳細內容。更多資訊請關注PHP中文網其他相關文章!