Prezados, boa noite! Tentei fazer uma consulta de MAX e MIN por Classificação Etária usando a query abaixo. Gostaria de saber se vocês teriam uma sugestão para fazer a mesma pesquisa de maneira mais enxuta. Desde já muito obrigado! Abraços
/*TABELA_DE_CLIENTES MAX E MIN POR CLASS_ETARIA*/
SELECT
(CASE
WHEN TO_CHAR(DATA_DE_NASCIMENTO, 'YYYY') < '1990' THEN 'VELHO'
WHEN TO_CHAR(DATA_DE_NASCIMENTO, 'YYYY') <= '1995' THEN 'JOVEM'
ELSE 'CRIANÇA'
END) AS CLASS_ETARIA,
MAX (DATA_DE_NASCIMENTO) AS MAIOR_DT_NASC ,
MIN (DATA_DE_NASCIMENTO) AS MENOR_DT_NASC
FROM
(
SELECT NOME, DATA_DE_NASCIMENTO,
(CASE
WHEN TO_CHAR(DATA_DE_NASCIMENTO, 'YYYY') < '1990' THEN 'VELHO'
WHEN TO_CHAR(DATA_DE_NASCIMENTO, 'YYYY') <= '1995' THEN 'JOVEM'
ELSE 'CRIANÇA'
END) AS CLASS_ETARIA
FROM TABELA_DE_CLIENTES
)
GROUP BY
(CASE
WHEN TO_CHAR(DATA_DE_NASCIMENTO, 'YYYY') < '1990' THEN 'VELHO'
WHEN TO_CHAR(DATA_DE_NASCIMENTO, 'YYYY') <= '1995' THEN 'JOVEM'
ELSE 'CRIANÇA'
END)
ORDER BY
(CASE
WHEN TO_CHAR(DATA_DE_NASCIMENTO, 'YYYY') < '1990' THEN 'VELHO'
WHEN TO_CHAR(DATA_DE_NASCIMENTO, 'YYYY') <= '1995' THEN 'JOVEM'
ELSE 'CRIANÇA'
END);