私は2つのテーブルを持っています:Marks(studentnum、marks)Student(SNum、SName)
私が行った場合
SNameを選択し、Marksからmarks-avg(marks)がSNum=studentnumでStudentに参加します
その後、1行しか返されません。
平均の変数を割り当てずに、学生の名前のすべてのリストと、学生のマークと平均(学生のマーク-平均)の差を返す方法はありますか?
集計値と非集計値を混在させたいと考えています。これはサブクエリを使用しますが、サーバーによっては他のオプションがある場合があります。
SELECT
SName,
marks - (SELECT avg(marks) FROM Marks as m2 WHERE m2.studentnum = m.studentnum)
FROM
Marks as m INNER JOIN
Student as s
ON s.SNum = m.studentnum
これを試して:
Select s.sname, (m.mark - temp.avg)
From marks m
Inner join (select studentnum, avg(mark) as avg from marks group by studentnum) temp
On temp.studentnum = m.studentnum
Inner Join students s
On s.snum = m.studentnum