2013-03-14 5 views
0

У меня есть таблица с перечислением программных кодов и классов университетов. Некоторые программные коды одинаковы. Я хотел бы усреднить оценку для каждой отдельной программы. Как я могу это сделать? Мой код до сих пор только что привел меня к этой таблице, но я не могу понять, как я могу работать на этой ОДНОЙ таблице?Усреднение различных значений в одной таблице?

SELECT s.program_code, 
     r.grade 
FROM students s 
     INNER JOIN (SELECT e.student_id, 
          e.module_code, 
          IF(c.grade IS NULL, e.grade, (e.grade + c.grade)/2) AS grade 
        FROM exams e 
          LEFT OUTER JOIN continuous_assessments c 
             ON e.student_id = c.student_id 
              AND e.module_code = c.module_code) r 
       ON s.student_id = r.student_id; 
+0

Вы хотите использовать 'COALESCE' вместо' IF'? Что такое rdbms, MySql? –

+0

Все, что выше, просто дает мне эту таблицу, которую я упоминаю. – Boon

ответ

0

Что-то подобное может работать

select program_code, avg(e.grade + grade) 
from blah blah 
group by program_code 
+0

Жаль, что это MySQL. Код, приведенный выше, возвращает таблицу с программным кодом и классом. – Boon

+0

На самом деле, я только что ответил на свой вопрос. Это было что-то вроде этого. Я новичок в SQL и не знал об операторе GROUP BY! – Boon

Смежные вопросы