2.聚合函數使用時必須有
比如有一個表
求平均成績是用聚合函數
3.分組,排序,再次篩選,取幾條執行順序
4.如上表要求查詢
方法一:分步查詢
先查出
然後再查這些同學的平均分,需要
便得到表
name
張三
李四
注意sql的執行順序
先執行
會得到表2:
name
張三
張三
李四
李四
王五
之後再分組和再篩選
但要注意雖然group by前,但group by是作為
然後在表
第二步:
找到這些學生後,在把學生名最為查詢條件再次篩選,因為第一步篩選掉了及格的了的成績,結果破壞了數據的原始性,所以還得進行一次篩選
select name,avg(score) from stu where name in (select name from stu where
score<60 group by name having count(name)>=2) group by name;
分析:首先運行
得到下表3:
name
Score<60
張三
0
張三
1
張三
1
李四
1
李四
1
王五
1
在
比如字段
從表三發現:
於是
gk>=2;
聚合函數的執行時同時進行
得到結果表:
顯然方法二比一更簡潔高效
未完待續....!