アナログCPU:5108843109

ゲームと音楽とプログラミング(酒と女とロックンロールのノリで)

('ω') < イザユケエンジニャー

GROUP句で「n件ごと」にまとめる

MySQLを前提として書いています

ややタイトル詐欺。

1000件ごとの統計情報(件数、平均値、合計値…など)を出したいことがあったので以下のようなクエリで解決。

-- ざっくり1000件ごとの件数、平均、合計、最小値、最大値
SELECT
  MIN(`id`) AS `id_min`
 ,COUNT(`id`) AS `count`
 ,AVG(`value`) AS `value_avarage`
 ,SUM(`value`) AS `value_sum`
 ,MIN(`value`) AS `value_min`
 ,MAX(`value`) AS `value_max`
FROM
  `table`
GROUP BY
  TRUNCATE(`id` / 1000, 0)

IDが連番になっているのが前提で、
「IDを1000で割って切り捨てた数字ごと」に集計としました。