Select Com Faixa de Idades

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
Avatar do usuário
Spectreman
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 48
Registrado em: Ter, 29 Mar 2005 4:56 pm
Localização: Tóquio
DOMINANTES, ÀS ORDENS!

Tenho um select que retorna:

Selecionar tudo

select idade,count(*)
from cliente
group by idade
IDADE    COUNT(*)
10	2
15	5
17	6
20	1
22	5
32	2
Gostaria que ele retornasse
IDADE COUNT(*)
10..20 14
21..35 7

Sem utilizar nenhuma tabela de faixas

Isto é possível utilizando algum tipo de group by ou outro método?
Avatar do usuário
Spectreman
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 48
Registrado em: Ter, 29 Mar 2005 4:56 pm
Localização: Tóquio
DOMINANTES, ÀS ORDENS!

Fiz assim deu certo

Selecionar tudo

SELECT
 SEXO,
(CASE 
WHEN idade BETWEEN 0  AND 15 THEN ' 0 a 15 '
WHEN idade BETWEEN 16 AND 20 THEN ' 16 - 20 '
WHEN idade BETWEEN 21 AND 35 THEN ' 21 - 35 '
WHEN idade BETWEEN 36 AND 49 THEN ' 36 - 49 ' 
ELSE
   ' ACIMA DE 50 ' 
END)
AS BUCKET,
SUM(QUANT) AS TOTAL
FROM X 
GROUP BY SEXO,
(CASE 
WHEN idade BETWEEN 0  AND 15 THEN ' 0 a 15 '
WHEN idade BETWEEN 16 AND 20 THEN ' 16 - 20 '
WHEN idade BETWEEN 21 AND 35 THEN ' 21 - 35 '
WHEN idade BETWEEN 36 AND 49 THEN ' 36 - 49 ' 
ELSE
   ' ACIMA DE 50 ' 
END)
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 15 visitantes