mysql Invalid use of group function的解決辦法


錯誤語句:SELECT
s.SID,
s.Sname,
AVG(a.score)
FROM
student s
LEFT JOIN sc a ON s.SID = a.SID

WHERE AVG(a.score) > 60
GROUP BY
s.SID
正確語句:

SELECT
s.SID,
s.Sname,
AVG(a.score)
FROM
student s
LEFT JOIN sc a ON s.SID = a.SID

GROUP BY
s.SID

HAVING(a.score) >60

原因:

where 子句的作用是對查詢結果進行分組前,將不符合where條件的行去掉,即在分組之前過濾數據,where條件中不能包含聚組函數,使用where條件過濾出特定的行。

having 子句的作用是篩選滿足條件的組,即在分組之后過濾數據,條件中經常包含聚組函數,使用having 條件過濾出特定的組,也可以使用多個分組標准進行分組。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM