Aanbevolen, 2019

Editor'S Choice

Verschil tussen Group By en Order By in SQL

Met SQL kunt u de gegevens die door de query zijn verkregen, ordenen. We hebben twee clausules voor het ordenen van de gegevens die zijn verkregen uit de query die de groeperen-by- en de ordernummer-clausule zijn. Het punt dat de Group By- en Order By-clausule onderscheidt, is dat de Group By- component wordt gebruikt wanneer we de verzamelfunctie willen toepassen op meer dan één set tupels en de Order By- component wordt gebruikt wanneer we de gegevens willen sorteren die door de query zijn verkregen. Laten we enkele verschillen tussen de groepsclausule en de bestelclausule bespreken met behulp van de onderstaande vergelijkingsgrafiek.

Vergelijkingstabel

Basis voor vergelijkingGroeperen opBestel door
basis-Group By wordt gebruikt om de groep van de set van de tuples te vormen.Order By wordt gebruikt om de gegevens die zijn verkregen als resultaat van een query in gesorteerd formulier te rangschikken.
AttribuutKenmerk onder de functie Aggregate kan niet in de groepsby-component voorkomen.Attribuut onder aggregaat kan in Order by Clause zijn.
GrondGedaan op grond van overeenstemming tussen attribuutwaarden.Gedaan op grond van oplopende volgorde en aflopende volgorde.

Definitie van Group By Clause

Geaggregeerde functies zoals avg, min, max, sum, count worden toegepast op de enkele set tuples. Als u de verzamelfuncties wilt toepassen op de groep van de set van tuples, hebben we daarvoor een groepsclausule. Group by-clausule groepeert de tuples met dezelfde attribuutwaarde.

Er is één ding om te onthouden over de Group By-component, zorg ervoor dat het kenmerk onder de Group By- component in de SELECT- clausule moet voorkomen maar niet onder een verzamelfunctie . Als de Group By-component een kenmerk bevat dat niet onder SELECT-clausule staat of als het onder SELECT-clausule staat maar onder aggregatiefunctie, wordt de query onjuist. Vandaar dat we kunnen zeggen dat de Group By-component altijd wordt gebruikt in samenwerking met de SELECT-clausule.

Laten we een voorbeeld nemen om de Group By-component te begrijpen.

SELECTIE Afdeling _ID, avg (salaris) als avg_salary van docentgroep op afdelings_ID.

Je ziet dat er aanvankelijk een tussenresultaat wordt gevormd dat de afdelingen heeft gegroepeerd.

Vervolgens wordt de verzamelfunctie avg toegepast op elke groep afdelingen en wordt het resultaat hieronder weergegeven.

Definitie van Order by Clause

Order by-clausule wordt gebruikt om gegevens weer te geven die zijn verkregen door een query in de gesorteerde volgorde. Zoals de Group By-component wordt de Order By-component ook gebruikt in samenwerking met de SELECT-clausule. Als u de sorteervolgorde niet vermeldt, sorteert de sorteervolgorde gegevens in stijgende volgorde. U kunt de oplopende volgorde opgeven als oplopende en aflopende volgorde als desc .

Laten we de werking van de Order By-component begrijpen met behulp van het volgende voorbeeld. We hebben een tabel met docenten en ik zal het sorteren toepassen op twee kolommen Department_Id en Salary van de tabel Teacher.

Selecteer Afdeling_ID, Salaris van docentvolgorde per afdelingsdatum-id, Salaris desc.

Dat zie je als eerste, het rangschikt de afdelings-ID in oplopende volgorde en vervolgens worden de salarissen in dezelfde afdeling in aflopende volgorde gerangschikt.

Belangrijkste verschillen tussen Group By en Order By

  1. Group By-component groepeert de set tuples in een relatie die onder de SELECT-component valt. Aan de andere kant sorteert de Order-by-component het resultaat van de query in oplopende of aflopende volgorde.
  2. Het attribuut onder aggregatiefunctie kan niet onder de Group By-component vallen, terwijl het attribuut onder aggregatiefunctie zich daar onder de Order By-component kan bevinden.
  3. Het groeperen van tupels gebeurt op basis van gelijkenis tussen de attribuutwaarden van de tupels. Aan de andere kant wordt het bestellen of sorteren uitgevoerd op basis van oplopende volgorde of aflopende volgorde.

Conclusie:

Als u de groep van de set van tuples wilt vormen, moet u de Group By-component gebruiken. Als u de gegevens van een enkele kolom of meer dan één kolom in de reeks tuples in oplopende of aflopende volgorde wilt rangschikken, moet de clausule Order door worden gebruikt.

Top