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

GROUP BY uden aggregeret funktion

Sådan fungerer GROUP BY. Det tager flere rækker og gør dem til en række. På grund af dette skal den vide, hvad den skal gøre med alle de kombinerede rækker, hvor der har forskellige værdier for nogle kolonner (felter). Dette er grunden til, at du har to muligheder for hvert felt, du vil VÆLGE:Inkluder det enten i GROUP BY-sætningen, eller brug det i en aggregeret funktion, så systemet ved, hvordan du vil kombinere feltet.

Lad os f.eks. sige, at du har denne tabel:

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

Hvis du siger GROUP BY Name, hvordan ved det, hvilket ordrenummer der skal vises i resultatet? Så du inkluderer enten OrderNumber i gruppe efter, hvilket vil resultere i disse to rækker. Eller du bruger en aggregeret funktion til at vise, hvordan ordrenumrene håndteres. For eksempel MAX(OrderNumber) , hvilket betyder, at resultatet er John | 2 eller SUM(OrderNumber) hvilket betyder, at resultatet er John | 3 .



  1. PostgreSQL:hvordan konverteres fra Unix-epoke til dato?

  2. Hvorfor giver denne SQL-kode fejl 1066 (Ikke unik tabel/alias:'bruger')?

  3. Opdel kommasepareret streng og indsæt til en tabel (int)

  4. Vigtigheden af ​​vedligeholdelse på MSDB