2017-10-23 4 views
-1

私は学期間のGPAの差を見出そうとしています。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 

ID2には春のGPAがないため、ID2は無視されます。 ID 1とID 3のGPA差異を調べるにはどうすればいいですか?私は

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'; 

の下にこのコードを使用し

ID 1 : .5 

ID 3 : .2 

しかし、結果ショー...

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

は、どのように私は、重複を削除することができますか? 0.5 ID3::私は '個別' について考えています.2

ID1 ...などresutを取得しますか?

+0

雅を使用し、重複を削除したい場合。あなたはこのクエリフォーマットのようにdistinctを使うことができます。 'select distinct column_name' –

+0

最初は一見重複しているのはなぜですか?いくつかの追加情報がないか、テーブル自体に重複が含まれていますか? – QHarr

+0

質問は重複しています。https://stackoverflow.com/questions/1641718/how-to-select-unique-records-by-sqlを参照してください。 – Louisth

答えて

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

関連する問題