tecnologia | consultoria | banco de dados

Oracle - Agrupamento por faixa de valores

Para este exemplo, utilizei a tabela Employees do Schema HR padrão do Oracle.


SELECT
(CASE
WHEN TRUNC((MONTHS_BETWEEN(SYSDATE,hire_date)/12),0) BETWEEN 0 AND 4 THEN '0 a 4 anos'
WHEN TRUNC((MONTHS_BETWEEN(SYSDATE,hire_date)/12),0) BETWEEN 5 AND 8 THEN '5 a 8 anos'
WHEN TRUNC((MONTHS_BETWEEN(SYSDATE,hire_date)/12),0) BETWEEN 9 AND 12 THEN '9 a 12 anos'
ELSE 'Superior ou 13 anos'
END) AS "FAIXA",
COUNT(*) AS "TOTAL"
FROM hr.employees
GROUP BY
(CASE
WHEN TRUNC((MONTHS_BETWEEN(SYSDATE,hire_date)/12),0) BETWEEN 0 AND 4 THEN '0 a 4 anos'
WHEN TRUNC((MONTHS_BETWEEN(SYSDATE,hire_date)/12),0) BETWEEN 5 AND 8 THEN '5 a 8 anos'
WHEN TRUNC((MONTHS_BETWEEN(SYSDATE,hire_date)/12),0) BETWEEN 9 AND 12 THEN '9 a 12 anos'
ELSE 'Superior ou 13 anos'
END);

OBS: poderia ser utilizado tanto TRUNC(coluna_data, 0) como FLOOR(coluna_data).
Data publicação: 10:09 30/09/2014
Perfil
Olá jovem Padawan, seja bem vindo! Este site foi criado com o intuito de compartilhar um pouco de conhecimento de Tecnologia da Informação e Business Intelligence.

Linkedin  Youtube

"A nova fonte de poder não é o dinheiro na mão de poucos, mas a informação na mão de muitos." (John Naisbitt)


Leandro Sacramento, Todos os direitos reservados - 2012 - 2020