点击关注公众号,SQL干货及时获取
后台回复:1024,获取500G视频教程 推荐阅读 成为数据分析师 牛逼,OpenAI新模型 o1 国内直接连! 《SQL145题第2版》正式发布!
华为职级体系
华为薪资范围
13级:Base 20W~26W,年终奖 3W~6W,无股权,总包 23W~32W 14级:Base 26W~30W,年终奖 5W~8W,股权 1W~4W,总包 32W~42W 15级:Base 30W~38W,年终奖 7W~12W,股权 5W~8W,总包 42W~58W 16级:Base 38W~46W,年终奖 8W~16W,股权 10W~16W,总包 56W~78W 17级:Base 46W~68W,年终奖 18W~26W,股权 20W~30W,总包 84W~124W 18级:Base 70W~85W,年终奖 35W~50W,股权为 30W~50W,总包 125W~185W
题目
用一条SQL 语句 查询出每门课都大于80 分的学生姓名,表格样式及数据如下:
结果为:
参考答案
create table T20191110
(
name varchar(20),
course varchar(20),
score int
)
insert into T20191110 values('张三','语文',81);
insert into T20191110 values('张三','数学',75);
insert into T20191110 values('李四','语文',76);
insert into T20191110 values('李四','数学',90);
insert into T20191110 values('王五','语文',81);
insert into T20191110 values('王五','数学',100);
insert into T20191110 values('王五','英语',90);
--MySQL和SQL Server解法
--方法一:
select name from T20191110
group by name having min(score) > 80;
--方法二:
select distinct name from T20191110
where name not in(
select distinct name from T20191110
where score <=80
);
答案解析
解法一是通过找到每个学生的分数的最小值,当最小值都比80分大,那么就是该学生的所有课程分数都比80大
解法二是先找到有课程分数小于等于80分的学生,然后通过 NOT IN 来排除这些学生,同样可以达到题目的要求。
最后