首頁 > 資料庫 > mysql教程 > 標準 SQL 中 HAVING 子句可以在沒有 GROUP BY 子句的情況下存在嗎?

標準 SQL 中 HAVING 子句可以在沒有 GROUP BY 子句的情況下存在嗎?

Barbara Streisand
發布: 2025-01-05 09:25:40
原創
243 人瀏覽過

Can a HAVING Clause Exist Without a GROUP BY Clause in Standard SQL?

不帶GROUP BY 的HAVING:標準SQL 合規性

標準SQL 中是否可以存在沒有GROUP BY 子句的HAVING 子的HAVING 子句?依照標準,使用HAVING子句時需要GROUP BY子句。標準規定 HAVING 子句中引用的每一列必須在功能上依賴 GROUP BY 子句中的列或外部引用。

但是,MySQL 允許不帶 GROUP BY 子句的 HAVING 子句,並且它在特定條件下按預期運行:當第一行具有指定列的最大值時。

為了符合標準,應修改查詢以包含GROUP BY 子句。例如,如果我們要檢索具有最大頁數的行,則更正後的查詢將為:

SELECT *
FROM Book
GROUP BY BookID
HAVING NumberOfPages = MAX(NumberOfPages)
登入後複製

此查詢將按BookID 對行進行分組,並將HAVING 條件應用於每個組,傳回僅包含每組中頁數最多的行。

以上是標準 SQL 中 HAVING 子句可以在沒有 GROUP BY 子句的情況下存在嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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