sql >> Database >  >> RDS >> Oracle

GROUP BY zonder aggregatiefunctie

Zo werkt GROUP BY. Het duurt meerdere rijen en verandert ze in één rij. Daarom moet het weten wat het moet doen met alle gecombineerde rijen waar er verschillende waarden zijn voor sommige kolommen (velden). Daarom heb je twee opties voor elk veld dat je wilt SELECTEREN:neem het op in de GROUP BY-component of gebruik het in een aggregatiefunctie zodat het systeem weet hoe je het veld wilt combineren.

Laten we bijvoorbeeld zeggen dat u deze tabel heeft:

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

Als u GROUP BY Name zegt, hoe weet het dan welk Ordernummer in het resultaat moet worden weergegeven? U neemt dus ofwel OrderNumber op in group by, wat resulteert in deze twee rijen. Of u gebruikt een aggregatiefunctie om te laten zien hoe u met de OrderNumbers omgaat. Bijvoorbeeld MAX(OrderNumber) , wat betekent dat het resultaat John | 2 of SUM(OrderNumber) wat betekent dat het resultaat John | 3 .



  1. MySQL-offset oneindige rijen

  2. Postgres-queryoptimalisatie (een indexscan afdwingen)

  3. Hoe de Sign()-functie werkt in PostgreSQL

  4. Hoe duplicaten in SQL te verwijderen