MYSQL SUM GROUP BY

group-by, mysql, sql, sum

Solution

GROUP BY has to come before ORDER BY:

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

Problem

I'm working on a high school grading system. At my school, grades can be changed by reworking problems and I store these changes with dates. I have a function that properly returns averages because the most recent grade is flagged with a "current" field with a value of '1'. I'd like to make the function capable of returning the most recent grade with respect to a date in the past. I'm making a graph of how their average has changed over time. What I'd like to do is something like this: ``` select sum(grades.points) from grades where date < 'thedate' order by date DESC group by assignmentID ``` I can't use sum and group by. It errors... The best I can think of is to do a sub-select. Any other thoughts?

Original source

Related problems