Diferența dintre grupul și ordinea prin SQL

Autor: Laura McKinney
Data Creației: 1 Aprilie 2021
Data Actualizării: 17 Mai 2024
Anonim
SQL GROUP BY vs. ORDER BY
Video: SQL GROUP BY vs. ORDER BY

Conţinut


SQL permite organizarea datelor obținute prin interogare. Avem două clauze pentru organizarea datelor obținute din interogare care sunt clauza Group By și Order By. Punctul care distinge clauza Group By și Order By este acela A se grupa cu clauza este folosită atunci când dorim să aplicăm funcția de agregare la mai multe seturi de tuples și Comandați prin clauza este folosită atunci când dorim să sortăm datele obținute prin interogare. Haideți să discutăm unele diferențe între clauza Group By și clauza Order By cu ajutorul graficului de comparație prezentat mai jos.

  1. Diagramă de comparație
  2. Definiție
  3. Diferențele cheie
  4. Concluzie

Diagramă de comparație

Baza pentru comparațieA se grupa cuComandați prin
De bazăGroup By este folosit pentru a forma Grupul din setul de tupluri.Order By este folosit pentru a aranja datele obținute ca urmare a unei interogări într-o formă Sortată.
Atribut Atributul sub funcția Agregat nu poate fi în clauza Group By.Atributul sub agregat poate fi în Ordine după clauză.
SolRealizat pe motiv de similitudine între valorile atributului.Efectuat pe motiv de ordine crescătoare și ordine descendentă.

Definiția Group By Clause

Funcțiile de agregare cum ar fi media, min, max, sumă, număr se aplică unui singur set de tupluri. În cazul în care doriți să aplicați funcțiile de agregare la grupul setului de tupluri, atunci avem Grup după clauză pentru asta. Grupați după clauză grupează tuplurile care au aceeași valoare de atribut.


Există un lucru tine minte despre clauza Group By, asigurați-vă că atribut sub A se grupa cu clauza trebuie să apară în SELECTAȚI clauza dar nu sub un funcție agregată. Dacă clauza Group By conține un atribut care nu este sub clauza SELECT sau dacă este sub clauza SELECT, dar în funcție de agregat, interogarea devine eronată. Prin urmare, putem spune că clauza Group By este întotdeauna folosită în colaborare cu clauza SELECT.

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

SELECT Departamentul _ID, avg (salariul) ca avg_salary din grupul profesorului By Department_ID.

Puteți vedea că inițial este format un rezultat intermediar care a grupat departamentele.


În continuare, funcția agregată avg este aplicată fiecărui grup de departamente, iar rezultatul este prezentat mai jos.

Definiția ordinului după clauză

Clauza Order By este utilizată pentru afișarea datelor obținute de 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 ordinea crescătoare. Puteți specifica ordinea ascendentă ca asc și ordinea descrescătoare ca desc.

Să înțelegem funcționarea clauzei Order By cu ajutorul următorului exemplu. Avem o masă de profesor și voi aplica sortarea pe două coloane Departamentul_Id și Salariul, din tabelul Profesor.

Selectați Departamentul_ID, Salariul din Ordinul profesorului După Departamentul_Id asc, salariul desc.

Puteți vedea asta mai întâi, aranjează Departamentul _ID în ordine crescătoare și apoi aranjează salariile în același departament în ordine descrescătoare.

  1. Grupul după clauza grupează setul de tupluri într-o relație care se află sub clauza SELECT. Pe de altă parte, clauza Order By sortează rezultatul interogării în ordine crescătoare sau descendentă.
  2. Atributul în funcție de agregat nu poate fi sub clauza Group By, în timp ce atributul în funcție de agregat poate fi acolo în clauza Order By.
  3. Gruparea tuplurilor se face pe baza similitudinii între valorile atributului tuplurilor. Pe de altă parte, ordonarea sau sortarea se face pe baza ordinului ascendent sau a ordinului descendent.

Concluzie:

Dacă doriți să formați grupul setului 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 multe coloane din setul de tupluri în ordine crescătoare sau descendentă, atunci trebuie folosită clauza Order By.