sql >> Base de Datos >  >> RDS >> Sqlserver

En SQL, ¿cómo puede agrupar por rangos?

Ninguna de las respuestas más votadas es correcta en SQL Server 2000. Tal vez estaban usando una versión diferente.

Estas son las versiones correctas de ambos en SQL Server 2000.

select t.range as [score range], count(*) as [number of occurences]
from (
  select case  
    when score between 0 and 9 then ' 0- 9'
    when score between 10 and 19 then '10-19'
    else '20-99' end as range
  from scores) t
group by t.range

o

select t.range as [score range], count(*) as [number of occurrences]
from (
      select user_id,
         case when score >= 0 and score< 10 then '0-9'
         when score >= 10 and score< 20 then '10-19'
         else '20-99' end as range
     from scores) t
group by t.range