我有来自TableA的以下数据集
S.No StudentID Marks Description SubjectID
1 1 50 Science 1
2 1 30 Mathematics 2
3 2 25 Science 1
4 2 25 Mathematics 2
我想运行一个查询并比较科学和数学之间的分数,并让那些得分高于数学的学生。而且我不应该看到在这两个科目中得分相同的学生。
输出:
S.No StudentID Marks Description SubjectID
1 1 50 Science 1
2 1 30 Mathematics 2
有人可以帮我查询一个示例。提前谢谢。
答案 0 :(得分:1)
可以这么做,但有一个漫长的方式,但我相信会有另一个好的解决方案
select a.*
from demo a
join(
select t.StudentID
from demo t
join demo t1 on t.StudentID = t1.StudentID
and t.Description = 'Science'
and t1.Description = 'Mathematics'
and t.Marks > t1.Marks) b using(StudentID);