Recomandat, 2024

Alegerea Editorului

Diferența între grupul prin și ordinea în SQL

SQL permite organizarea datelor obținute prin interogare. Avem două clauze pentru organizarea datelor obținute din interogarea care este clauza Group By și Order By. Punctul care distinge clauzele Group by și Order by este că clauza Group By este utilizată atunci când dorim să aplicăm funcția agregată la mai mult de un set de tupluri și clauza Order by este utilizată atunci când dorim să sortăm datele obținute de interogare. Să discutăm unele diferențe între clauza Group By și clauza Order by cu ajutorul diagramei de comparație de mai jos.

Diagramă de comparație

Bazele comparațieiA se grupa cuOrdonează prin
De bazăGroup By este folosit pentru a forma grupul setului de tupluri.Ordinea By este utilizată pentru a aranja datele obținute ca urmare a unei interogări în formularul Sortează.
AtributAtributul în cadrul funcției Agregate nu poate fi în clauza Group By.Atributul sub agregat poate fi în Clauza prin ordin.
SolÎntocmit pe baza similitudinii dintre valorile atributelor.Realizată pe baza ordinii ascendente și ordonării descendente.

Definiția grupului prin clauză

Funcțiile agregate, cum ar fi avg, min, max, suma, numărătoarea sunt aplicate setului unic de tupluri. În cazul în care, dacă doriți să aplicăm funcțiile agregate grupului setului de tupluri, avem o clauză de grup pentru asta. Gruparea după clauză grupează tuplurile care au aceeași valoare de atribut.

Există un lucru de reținut în legătură cu clauza Group By, asigurați-vă că atributul din clauza Group By trebuie să apară în clauza SELECT, dar nu sub o funcție agregată . Dacă clauza Group By conține un atribut care nu se află sub clauza SELECT sau dacă este sub clauză SELECT, dar sub o funcție agregată, interogarea devine eronată. Prin urmare, putem spune că clauza Group By este folosită întotdeauna în colaborare cu clauza SELECT.

Să luăm un exemplu pentru a înțelege clauza Group By.

SELECT Departamentul _ID, avg (Salariu) ca avg_salary de la Grupul profesorilor Prin Departament_ID.

Puteți observa că inițial se formează un rezultat intermediar care a grupat departamentele.

Apoi, funcția agregată avg se aplică fiecărui grup de departamente, iar rezultatul este prezentat mai jos.

Definiția ordinului prin clauză

Clauza de comandă este utilizată pentru afișarea datelor obținute printr-o interogare în ordinea sortată. Ca și clauza Group by, clauza Order By este folosită și în colaborare cu clauza SELECT. Dacă nu menționați ordinea de sortare, clauza Order By sortează datele în ordine crescătoare. Puteți specifica ordinea ascendentă în ordine asc și descrescătoare descrisă .

Să înțelegem funcționarea clauzelor Ordin cu ajutorul următorului exemplu. Avem o masă pentru profesori și voi aplica sortarea la două coloane Department_Id și Salary din tabăra Profesorului.

Selectați Department_ID, Salariu de la profesor la Departamentul_Id asc, Salariu desc.

Puteți vedea că, în primul rând, organizează departamentul _ID în ordine ascendentă și apoi aranjează salariile din același departament în ordine descrescătoare.

Diferențele cheie între grup și ordine

  1. Grupul prin clauză grupează setul de tupluri într-o relație care se află sub clauza SELECT. Pe celelalte mâini, clauza Order by sortează rezultatul interogării în ordine ascendentă sau descendentă.
  2. Atributul aflat sub funcția agregată nu poate fi sub clauza Group By, în timp ce atributul sub funcție agregată poate fi acolo sub clauză Order By.
  3. Gruparea tuplilor se face pe baza asemănării dintre valorile atributelor tuplurilor. Pe de altă parte, ordonarea sau sortarea se face pe baza ordinii ascendente sau a ordonării descendente.

Concluzie:

Dacă doriți să formați grupul de seturi de tupluri, atunci trebuie să utilizați clauza Group By. În cazul în care doriți să aranjați datele unei singure coloane sau mai mult de o coloană din setul de nopți în ordine ascendentă sau descendentă, atunci trebuie folosită clauza Order By.

Top