MYSQL SUM SUM GROUP BY (Programare, Sql, Mysql, Grupați După, Sum)

Stephane a intrebat.

Lucrez la un sistem de notare pentru liceu.

La școala mea, notele pot fi modificate prin refacerea problemelor și stochez aceste modificări cu date.

Am o funcție care returnează corect mediile, deoarece cea mai recentă notă este marcată cu un câmp „curent” cu valoarea „1”. Aș dori ca funcția să fie capabilă să returneze cea mai recentă notă în raport cu o dată din trecut. Fac un grafic cu evoluția mediei lor în timp.

Ceea ce aș vrea să fac este ceva de genul următor:

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

Nu pot folosi suma și grupa după. Se produc erori…

Cel mai bun lucru la care mă pot gândi este să fac o sub-selecție. Aveți alte idei?

2 răspunsuri
OMG ponei

GROUP BY trebuie să vină înainte de ORDER BY:

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

Gaurang

Încercați acest lucru:

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

Comentarii

  • Unde vezi vreo „sumă” pe întrebare? o_O –  > Por Erdal G..
  • a copiat și lipit un răspuns direct dintr-o altă întrebare: stackoverflow.com/questions/6105767/mysql-group-by-sum –  > Por beterthanlife.