2008年5月12日月曜日

max,min関数でグループの最大値、最小値を求める

こんなテーブルがあって、この中からAの最大値とBの最大値を求めたい場合。

+-----+-------+-------+
| id | grp | score |
+-----+-------+-------+
| 1 | A | 90 |
+-----+-------+-------+
| 2 | B | 80 |
+-----+-------+-------+
| 3 | A | 70 |
+-----+-------+-------+
| 4 | B | 85 |
+-----+-------+-------+
| 5 | A | 95 |
+-----+-------+-------+
| 6 | B | 75 |
+-----+-------+-------+

select max(score), group from table group by grp;
こんな感じで最大値が求められます。
最小値が必要な時はminが使えます。