Leandro Sacramento de Paula
tecnologia | big data | business intelligence | banco de dados
Oracle - Agrupamento por faixa de valores
Para este exemplo, utilizei a tabela Employees do Schema HR padrão do Oracle.
OBS: poderia ser utilizado tanto TRUNC(coluna_data, 0) como FLOOR(coluna_data).
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

Olá jovem Padawan, seja bem vindo! Este site foi criado com o intuito de compartilhar um pouco de conhecimento de Tecnologia da Informação, Big Data, Banco de Dados e Business Intelligence.
Tags das Publicações
"Se você vem da cidade ou do campo, seu sucesso será determinado pela sua própria confiança e coragem". (Michelle Obama)