練習2 --查詢平均成績大於等於60分的同學的學生編號和學生姓名和平均成績


查詢平均成績大於等於60分的同學的學生編號和學生姓名和平均成績

--解法一:

select
    t1.s_id,
    t2.s_name,
    avg(t1.s_score) as avg_score
from
    score t1
left join student t2 on
    t1.s_id = t2.s_id
group by
    t1.s_id
having
    avg(t1.s_score) >= 60

 

--參考解法:

select
    b.s_id,
    b.s_name,
    round(avg(a.s_score), 2) as avg_score
from
    student b
join score a on
    b.s_id = a.s_id
group by
    b.s_id,
    b.s_name
having
    round(avg(a.s_score), 2)>= 60;

 

GROUP BY表示根據哪個字段進行分組
GROUP BY必須得配合聚合函數來用,分組之后可以使用聚合函數。

常用聚合函數

  count() 計數  sum() 求和   avg() 平均數   max() 最大值  min() 最小值
 
HAVING相當於條件篩選,但它與WHERE篩選不同,HAVING是對於GROUP BY對象進行篩選。
 

--2019/04/16


免責聲明!

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



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