Oracle
 sql >> Database >  >> RDS >> Oracle

GROUP BY senza funzione di aggregazione

Ecco come funziona GROUP BY. Richiede diverse righe e le trasforma in una riga. Per questo motivo, deve sapere cosa fare con tutte le righe combinate in cui sono presenti valori diversi per alcune colonne (campi). Questo è il motivo per cui hai due opzioni per ogni campo che vuoi SELECT :includilo nella clausola GROUP BY o usalo in una funzione aggregata in modo che il sistema sappia come vuoi combinare il campo.

Ad esempio, supponiamo che tu abbia questa tabella:

Name | OrderNumber
------------------
John | 1
John | 2

Se dici GROUP BY Name, come farà a sapere quale OrderNumber mostrare nel risultato? Quindi includi OrderNumber nel gruppo per, il che risulterà in queste due righe. Oppure si utilizza una funzione di aggregazione per mostrare come gestire gli OrderNumbers. Ad esempio, MAX(OrderNumber) , il che significa che il risultato è John | 2 o SUM(OrderNumber) il che significa che il risultato è John | 3 .