最近在學(xué)子查詢(xún),發(fā)現(xiàn)有一個(gè)題目如下
要求查詢(xún)出兩門(mén)及兩門(mén)以上不及格者的平均成績(jī)
第一想法就是
先查詢(xún)出 成績(jī) 小于 60 的所有人 再進(jìn)行子查詢(xún)
SELECT `name`,avg(score) avg FROM score WHERE `name` IN ( SELECT `name` FROM score WHERE score < 60 GROUP BY `name` HAVING COUNT(name) >= 2 ) GROUP BY name
再想想,好像有點(diǎn)復(fù)雜了。
第二次,想能不能把不及格的成績(jī)統(tǒng)計(jì)起來(lái),再進(jìn)行篩選
SELECT `name`,AVG(score)avg,SUM(IF(score<60,1,0)) c FROM score GROUP BY `name` HAVING c >= 2
看了答案, 比我的第二種方案還要好
SELECT `name`,AVG(score) avg,SUM(score<60) c FROM score GROUP BY `name` HAVING c >= 2
提問(wèn):有沒(méi)有更簡(jiǎn)單 或者更復(fù)雜的 sql 提供參考?;蛘叽罄袀兲峁┫嚓P(guān)的 sql 子查詢(xún)題討論討論,也順便學(xué)習(xí)學(xué)習(xí),謝謝。