11

私は高校の成績評価システムに取り組んでいます。

私の学校では、問題を作り直すことで成績を変更することができ、これらの変更を日付とともに保存しています。

最新の成績には値「1」の「現在」フィールドでフラグが付けられているため、平均を適切に返す関数があります。過去の日付に関して最新の成績を返す関数を作成したいと思います。彼らの平均が時間の経過とともにどのように変化したかをグラフにしています。

私がやりたいことは次のようなものです:

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

sum と group by を使用できません。それはエラーです...

私が考えることができる最善の方法は、サブセレクトを行うことです。他の考えはありますか?

4

2 に答える 2

30

GROUP BY は ORDER BY の前に来なければなりません:

  SELECT SUM(g.points) 
    FROM GRADES g
   WHERE g.date < 'thedate' 
GROUP BY g.assignmentid
ORDER BY g.date DESC 
于 2009-10-21T04:24:19.790 に答える
-8

これを試して:

SELECT cat_name, SUM(amount) AS total_amount
FROM table
GROUP BY cat_name
于 2012-10-19T11:29:11.107 に答える