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で割って切り捨てた数字ごと」に集計としました。