首頁  >  文章  >  資料庫  >  MySQL 中如何使用沒有 GROUP BY 的聚合函數?

MySQL 中如何使用沒有 GROUP BY 的聚合函數?

DDD
DDD原創
2024-11-06 07:09:02313瀏覽

How Can I Use Aggregate Functions Without GROUP BY in MySQL?

不使用GROUP BY 的MySQL 聚合函數:為什麼以及如何

在MySQL 中,可以在SELECT 清單中使用聚合函數而不指定GROUP BY子句,與SQL Server 等其他RDBMS 不同。這種看似意外的行為其實是一種有意的設計選擇。

當不使用 GROUP BY 的聚合函數時,MySQL 會將整個結果集視為一個群組。這意味著聚合函數為查詢中指定的整個表或子集傳回單一值。

例如,查詢 SELECT col1,col2,sum(col3) FROM tbl1;傳回包含 col1 和 col2 的第一個值以及 col3 中所有值的總和的單行。在需要計算總計統計資訊而不對資料進行分組的情況下,此行為非常有用。

可以使用 ONLY_FULL_GROUP_BY 伺服器 SQL 模式修改不帶 GROUP BY 的聚合函數的行為。 MySQL 5.7.5之前的版本預設為停用該模式。但是,可以啟用它以禁止不使用 GROUP BY 的聚合函數。

要啟用ONLY_FULL_GROUP_BY,請將以下行加入MySQL 設定檔(通常是my.cnf):

sql-mode=ONLY_FULL_GROUP_BY

一次啟用後,MySQL 將對使用不含GROUP BY 的聚合函數的查詢拋出錯誤。這有助於確保資料完整性並防止錯誤結果。

以上是MySQL 中如何使用沒有 GROUP BY 的聚合函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn