2009-10-21 226 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