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

GROUP BY sem função agregada


É assim que o GROUP BY funciona. Leva várias linhas e as transforma em uma linha. Por isso, tem que saber o que fazer com todas as linhas combinadas onde existem valores diferentes para algumas colunas (campos). É por isso que você tem duas opções para cada campo que deseja SELECT :Incluir na cláusula GROUP BY ou usá-lo em uma função de agregação para que o sistema saiba como você deseja combinar o campo.

Por exemplo, digamos que você tenha esta tabela:
Name | OrderNumber
------------------
John | 1
John | 2

Se você disser GROUP BY Name, como ele saberá qual OrderNumber mostrar no resultado? Portanto, você inclui OrderNumber em group by, o que resultará nessas duas linhas. Ou você usa uma função de agregação para mostrar como lidar com OrderNumbers. Por exemplo, MAX(OrderNumber) , o que significa que o resultado é John | 2 ou SUM(OrderNumber) o que significa que o resultado é John | 3 .