Selecionar grupos de faixas etarias [SQL]

Oi, pessoal. Tudo bem?

Estou tentando verificar a porcentagem de faixas etárias de um banco de dados com mais de 2 milhões de linhas. Na coluna DE_FAIXA_ETARIA - está como texto, não sei se isso está influenciando - eu tenho grupos como 0 a 5 anos; 6 a 10 anos; 11 a 16 anos; 16 a 20 anos; 21 a 25 anos; 26 a 30 anos; 31 a 35 anos; 36 a 40 anos; 41 a 45 anos; 46 a 50 anos; 51 a 50 anos; 56 a 60 anos; 60+

Usando o tutorial “Entrevistando grandes bases de Dados com SQL”, eu consegui verificar algumas faixas etárias executando:

SELECT * FROM ben202007_SP

WHERE DE_FAIXA_ETARIA = '00 a 05 anos'

Dessa forma eu teria que fazer para cada um dos grupos.

Eu gostaria de saber como fazer para ter todos os grupos de uma vez.

Muito obrigado (:

1 Curtida

Oi Leo, veja se assim funciona: Primeiro obtenha o total de registros:

SELECT COUNT(*) AS TOTAL FROM ben202007_SP

Com esse total, rode uma segunda query onde 111111 é o número que você encontrou na primeira query:

select DE_FAIXA_ETARIA, count(*) / 1111111
  from ben202007_SP
group by DE_FAIXA_ETARIA

Dá para fazer tudo em uma única query mas achei mais didático deixar assim para que você possa entender melhor.

3 Curtidas

Oi, Josir. Tudo bem?

Muito obrigado.

Deu certo. Tive só um probleminha quando tentei rodar com o número total de registros me retornava ao valor 0, no caso desse BD 2.328.787.

Depois que tirei me retornou os valores por cada faixa etaria, mas consegui entender a lógica por trás.

Mais uma vez, muito obrigado (:
[]'s

2 Curtidas