问题描述:
数据如下:
姓名 课程 分数
张三 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;








暂无数据