База данных SQL запрашивает базовый вопрос AVG Difference - PullRequest
1 голос
/ 28 октября 2010

У меня очень простой вопрос по SQL.

Реляционная схема:

  • Студент (Сид, Имя)
  • Класс (Sid, ClassName, mark)
  • ClassName = {MATH, АНГЛИЙСКИЙ, PHY, .......}

Я хочу перечислить всех учеников, которые приняли MATH, и их средний балл по математике минус математический балл студента

Select DINSTINCT S.Sname, (E.Mark - AVG (E.Mark))   
From Student As S, Class As C   
Where C.ClassName = 'MATH'  AND S.Sid = C.Sid

Я не знаю, как сделать разницу; Я не думаю, что это правильно; Может кто-нибудь сказать мне, как это исправить?

1 Ответ

3 голосов
/ 28 октября 2010
Select DISTINCT S.Sname, E.Mark - (SELECT AVG(E.Mark)
                                     FROM Student
                                    WHERE C.ClassName = 'MATH')
From Student As S, Class As C   
Where C.ClassName = 'MATH'  AND S.Sid = C.Sid
...