解決MySQL 錯誤1111:無效使用群組函數
使用MySQL 時,您可能會遇到錯誤「Error 1111 (HY000) :嘗試使用群組函數(例如COUNT(*))聚合數據,同時按列分組時,群組函數使用無效」。
要解決此錯誤,請避免在執行 SELECT 子句時在 SELECT 子句中使用群組函數GROUP BY 操作。相反,請使用子查詢或 ORDER BY 子句來擷取所需的最大值。
請考慮以下範例:
<code class="mysql">SELECT name, MAX(COUNT(*)) AS max_count FROM table GROUP BY name;</code>
此查詢將傳回錯誤,因為 COUNT()在 SELECT 子句中使用,同時也依名稱分組。要解決此問題,請從SELECT 子句中刪除COUNT() 並將其用作MAX 函數內的子查詢:
<code class="mysql">SELECT MAX((SELECT COUNT(*) FROM table WHERE name = t.name)) AS max_count FROM table t GROUP BY name;</code>
執行此查詢後,您將獲得每個的最大記錄數表中的名稱。或者,您可以使用 ORDER BY 子句按計數對結果進行排序,然後只取得第一筆記錄:
<code class="mysql">SELECT name, COUNT(*) AS count FROM table GROUP BY name ORDER BY count DESC LIMIT 1;</code>
以上是如何修復 MySQL 錯誤 1111:按列分組時組函數的無效使用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!