GROUP BY

Agrupar os dados de uma consulta é fundamental para elaborar relatórios.

Exemplo para usar GROUP BY:

SELECT TABLE_NAME,OWNER,TABLESPACE_NAME
FROM ALL_TABLES
GROUP BY OWNER,TABLESPACE_NAME,TABLE_NAME

Nesta query trazemos 3 campos da tabela ALL_TABLES e ordenamos primeiramente pelo dono das tabelas.

Observe que todas as colunas solicitadas pelo SELECT estão no GROUP BY. Esta é uma das exigências da funcionalidade. Apenas as colunas com FUNÇÕES DE GRUPO não precisam ( podem? ) ser inseridas no GROUP BY statement.

Digamos que voce queira contar quantas tabelas cada usuário tem no seu sistema:

SELECT OWNER,COUNT(TABLE_NAME)
FROM ALL_TABLES
GROUP BY OWNER

na query acima selecionamos todos os owners e os agrupamos, após agrupar aplicamos o count em todas as tabelas que possuem o determinado owner. ( é mais ou menos assim que funciona 🙂 ).

Ahhh esqueci de falar GROUP BY NÃO ACEITA ALIAS!

Então se vc usar ALIAS nas suas colunas então deverá usar o nome da coluna no group by:

SELECT  OWNER dono,COUNT(TABLE_NAME)
FROM ALL_TABLES
GROUP BY OWNER

Então lembre-se, no GROUP BY voce deve sempre informar todos os campos que não estejam em funções de grupo e sem usar ALIAS!

Deixe uma resposta