热线电话:13121318867

登录
2019-01-25 阅读量: 732
SQL分组查询

问题描述:

数据如下:

姓名       课程        分数

张三       105         97

张三       108         65

李四       105         92

李四       108         70

赵五       105          93

赵五     108         97

问题:查询 课程105 的分数高于 课程108 的分数的学生姓名

数据源代码:

CREATE TABLE SCORE (NAME VARCHAR(10), COURSE VARCHAR(3), DEGREE NUMERIC(10,1));

INSERT INTO SCORE(NAME,COURSE,DEGREE) VALUES ('ZHANGSAN','105',97);

INSERT INTO SCORE(NAME,COURSE,DEGREE) VALUES ('ZHANGSAN','108',65);

INSERT INTO SCORE(NAME,COURSE,DEGREE) VALUES ('LISI','105',92);

INSERT INTO SCORE(NAME,COURSE,DEGREE) VALUES ('LISI','108',70);

INSERT INTO SCORE(NAME,COURSE,DEGREE) VALUES ('ZHAOWU','105',93);

INSERT INTO SCORE(NAME,COURSE,DEGREE) VALUES ('ZHAOWU','108',97);

解决方法:

select t_score.name

from (

select name,sum(case when course='105' then degree else 0 end) as A,

                        sum(case when course='108' then degree else 0 end) as B from score group by name) as t_score

where A>B;

0.0000
3
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子