【Hive sql 面试题】用一条sql语句查询出每门课都大于80分的学生姓名
表数据如下:
建表和插入数据:
create table t1(name string,course string,grade int
);INSERT INTO t1 (name, course, grade) VALUES
('张三', '英语', 85),
('张三', '语文', 90),
('张三', '数学', 92),
('李四', '英语', 75),
('李四', '语文', 98),
('李四', '数学', 72),
('王五', '英语', 90),
('王五', '语文', 85),
('王五', '数学', 92),
('王五', '体育', 80);
解题思路和答案:
要求的是用一条sql语句
解决
思路
核心:
根据 name 分组,求出对应 name 分数的最小值,最小值如果大于80分,那么所有成绩都大于80 分
代码
select name,min(grade) minScore from t1 group by name having minScore >=80;