首頁 > 資料庫 > mysql教程 > 如何修正「SELECT 清單的表達式不在 GROUP BY 子句中」MySQL 錯誤?

如何修正「SELECT 清單的表達式不在 GROUP BY 子句中」MySQL 錯誤?

Mary-Kate Olsen
發布: 2024-11-25 06:14:15
原創
280 人瀏覽過

How to Fix the

對「SELECT 清單的表達式不在GROUP BY 子句中」錯誤進行故障排除

錯誤「SELECT 清單的表達式不在GROUP BY 子句中並且包含非聚合列' libelle'," 在使用SELECT 清單和GROUP 中的非聚合列執行查詢時通常會遇到BY條款。要解決此錯誤,需要確保所有非聚合列都包含在 GROUP BY 子句中,或使用 SUM()、AVG() 或 COUNT() 等函數進行聚合。

中在這種特定情況下,查詢嘗試選擇包括「libelle」、「credit_initial」、「disponible_v」和「montant」在內的欄位。但是,GROUP BY 子句中僅包含“libelle”,而“montant”則不是聚合的。若要解決此問題,請修改查詢以在 GROUP BY 子句中包含“montant”,或使用 SUM() 或其他適當的函數進行聚合。

解決方案

這是查詢的更新版本,其中GROUP BY 中包含「montant」子句:

SELECT libelle, credit_initial, disponible_v, SUM(montant) AS total_montant 
FROM fiche, annee, type 
WHERE type.id_type = annee.id_type 
AND annee.id_annee = fiche.id_annee 
AND annee = YEAR(current_timestamp) 
GROUP BY libelle, credit_initial, disponible_v 
ORDER BY libelle ASC
登入後複製

或者,可以使用SUM() 調整查詢以聚合'montant':

SELECT libelle, credit_initial, disponible_v, SUM(montant) 
FROM fiche, annee, type 
WHERE type.id_type = annee.id_type 
AND annee.id_annee = fiche.id_annee 
AND annee = YEAR(current_timestamp) 
GROUP BY libelle 
ORDER BY libelle ASC
登入後複製

透過進行這些更改,查詢將符合 MySQL 5.7' s 嚴格的 GROUP BY 模式並避免錯誤。

以上是如何修正「SELECT 清單的表達式不在 GROUP BY 子句中」MySQL 錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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