2009-10-21 5 views
4

Я работаю над системой оценки средней школы.MYSQL SUM GROUP BY

В моей школе оценки могут быть изменены путем переделки проблем, и я сохраняю эти изменения с датами.

У меня есть функция, которая правильно возвращает средние значения, потому что последний класс помечен как «текущее» поле со значением «1». Я хотел бы, чтобы функция способна вернуть последний класс по отношению к дате в прошлом. Я делаю график того, как их средний показатель изменился с течением времени.

То, что я хотел бы сделать что-то вроде этого:

select sum(grades.points) 
    from grades 
where date < 'thedate' 
order by date DESC 
group by assignmentID 

Я не могу использовать сумму и группу по. Это ошибки ...

Лучшее, что я могу придумать, это сделать подвыбор. Любые другие мысли?

ответ

20

GROUP BY должно предшествовать ORDER BY:

SELECT SUM(g.points) 
    FROM GRADES g 
    WHERE g.date < 'thedate' 
GROUP BY g.assignmentid 
ORDER BY g.date DESC 
-3

Попробуйте это:

SELECT cat_name, SUM(amount) AS total_amount 
FROM table 
GROUP BY cat_name 
+0

Где вы видите "количество" на вопрос? o_O –

+3

он скопировал и вставил ответ прямо из другого вопроса: http://stackoverflow.com/questions/6105767/mysql-group-by-sum – beterthanlife