Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

ORA-00979 não é um grupo por expressão


Você deve colocar todas as colunas do SELECT no GROUP BY ou use funções neles que compactam os resultados em um único valor (como MIN , MAX ou SUM ).

Um exemplo simples para entender porque isso acontece:Imagine que você tenha um banco de dados assim:
FOO BAR
0   A
0   B

e você executa SELECT * FROM table GROUP BY foo . Isso significa que o banco de dados deve retornar uma única linha como resultado com a primeira coluna 0 para cumprir o GROUP BY mas agora existem dois valores de bar para escolher. Qual resultado você esperaria - A ou B ? Ou o banco de dados deve retornar mais de uma linha, violando o contrato de GROUP BY ?