Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

No SQL, como você pode agrupar em intervalos?


Nenhuma das respostas mais votadas está correta no SQL Server 2000. Talvez eles estivessem usando uma versão diferente.

Aqui estão as versões corretas de ambos no 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

ou
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