SQL如何在不重复的情况下找到GPA的区别

时间:2017-10-23 06:29:24

标签: mysql sql

我试图找到学期间GPA的差异。

ID 1 Semester Fall GPA: 3.0
ID 1 Semester Fall GPA: 3.0
ID 1 Semester Spring GPA: 3.5
ID 2 Semester Fall GPA: 3.0
ID 3 Semester Fall GPA: 3.0
ID 3 Semester spring GPA: 3.2

因为ID 2没有spring GPA,所以我会忽略ID2。 那么,我该怎么写以找出ID 1和ID 3的差异GPA?

ID 1 : .5

ID 3 : .2

我使用下面的代码

select a.id, 
b.gpa - a.gpa as diff
from your_table a
join your_table b on a.id = b.id
where a.semester = 'Fall'
and b.semester = 'Spring';

然而,结果显示......

ID1 : .5
ID1 : .5
ID3 : .2

如何删除重复内容?把...作为... ...

ID1:.5 ID3:.2

我在想'独特'?

1 个答案:

答案 0 :(得分:0)

如果要删除重复内容,请使用distinct

SELECT DISTINCT a.id
    ,b.gpa - a.gpa AS diff
FROM table1 a
INNER JOIN table1 b ON a.id = b.id
WHERE a.semester = 'Fall'
    AND b.semester = 'Spring';

<强> DEMO