首頁 > 資料庫 > mysql教程 > SQL 中的 HAVING 與 WHERE:何時使用每個子句進行資料過濾?

SQL 中的 HAVING 與 WHERE:何時使用每個子句進行資料過濾?

Susan Sarandon
發布: 2025-01-14 17:11:45
原創
673 人瀏覽過

HAVING vs. WHERE in SQL: When to Use Each Clause for Data Filtering?

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 之間的主要區別在於它們的應用時機:

  • HAVING 在分組後過濾聚合資料。
  • WHERE 在分組前過濾單一行。

透過利用這種區別,開發人員可以精確地操作和過濾 SQL SELECT 語句中的數據,以檢索所需的結果。

以上是SQL 中的 HAVING 與 WHERE:何時使用每個子句進行資料過濾?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板