Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Group By

Boa noite pessoal, eu não consegui entender o pq do goup by não funcionar, minha motivação é agrupar pelo alias faixa_etaria. Poderiam me explicar melhor sobre o group by ?

SELECT NOME,ESTADO,
   (CASE WHEN TO_CHAR(DATA_DE_NASCIMENTO,'YYYY') < '1990' THEN 'VELHO'
         WHEN TO_CHAR(DATA_DE_NASCIMENTO,'YYYY') >= '1990' AND TO_CHAR(DATA_DE_NASCIMENTO,'YYYY') <= '1995' THEN 'JOVENS'
         ELSE 'CRIANÇAS' 
         END) AS FAIXA_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') >= '1990' AND TO_CHAR(DATA_DE_NASCIMENTO,'YYYY') <= '1995' THEN 'JOVENS'
            ELSE 'CRIANÇAS' 
   END);
1 resposta
solução!

Ola Dianiffer,

Após a sentença GROUP BY geralmente se usam a coluna ou colunas que você quer agrupar. tente por exemplo:

SELECT NOME,ESTADO,
   (CASE WHEN TO_CHAR(DATA_DE_NASCIMENTO,'YYYY') < '1990' THEN 'VELHO'
         WHEN TO_CHAR(DATA_DE_NASCIMENTO,'YYYY') >= '1990' AND TO_CHAR(DATA_DE_NASCIMENTO,'YYYY') <= '1995' THEN 'JOVENS'
         ELSE 'CRIANÇAS' 
         END) AS FAIXA_ETARIA
   FROM TABELA_DE_CLIENTES 
GROUP BY
   NOME,ESTADO;

ou então (para contar quantidade de nome e estado

SELECT NOME,ESTADO, COUNT(*) AS QTDE
FROM TABELA_DE_CLIENTES 
GROUP BY   NOME,ESTADO;

ou ainda (um agrupamento mais simples para ajudar a esclarecer)

SELECT NOME, COUNT(*) AS QTDE
FROM TABELA_DE_CLIENTES 
GROUP BY   NOME;

Esse site traz uma explicação bastante rica com vários exemplos. https://www.w3schools.blog/group-by-clause-oracle