[SQL ] 资料选取问题

楼主: littlepigred (小猪鸿)   2016-03-11 20:01:09
数据库名称:MySQL
数据库版本:
内容/问题描述:
今天去面试遇到一题题目如下:
name subject score
────────────
aaa math 90
aaa chem 75
aaa eng 70
bbb chem 85
bbb math 95
bbb eng 90
ccc eng 65
ccc chem 80
ccc math 75
请用SQL语法选出至少2科分数高于85且没有任何一科低于75的人
小弟新手 麻烦各为求解QQ
作者: smlboby (波比)   2016-03-14 21:54:00
select name from table group by namehaving min(score)>=75and sum(case when score>85 then 1 else 0 end)>1
作者: neo5277 (I am an agent of chaos)   2016-03-18 00:59:00
公司好像知道是那间
作者: akiaki54 (喝酒做爱不谈恋爱)   2016-03-27 02:49:00
WHERE score>=75再group by / having先排除不合法 资料再分堆计算, 会不会观念清楚一点??效能也会好一点, WHERE执行顺序高于Group BY

Links booklink

Contact Us: admin [ a t ] ucptt.com