sql >> Base de Datos >  >> RDS >> Mysql

Agrupar filas por Intervalo de banda de año

Primero calcule la década para cada fila

select floor(year(`year`) / 10) * 10 as decade
from tbl_people

y luego use este resultado intermedio para contar SQL Fiddle

select count(*), decade, decade + 9
from (select floor(year(`year`) / 10) * 10 as decade
      from tbl_people) t
group by decade

o este SQL Fiddle , si quieres la década en una columna

select count(*) as count, concat(decade, '-', decade + 9) as year
from (select floor(year(`year`) / 10) * 10 as decade
      from tbl_people) t
group by decade