logo

GROUP BY vs. ORDER BY

Acest articol explică prezentarea completă a clauzelor GROUP BY și ORDER BY. Sunt utilizate în principal pentru organizarea datelor obținute prin interogări SQL. Diferența dintre aceste clauze este unul dintre cele mai frecvente locuri în care să te blochezi atunci când înveți SQL . Principala diferență dintre ele este că clauza GROUP BY este aplicabilă atunci când dorim să folosim funcții agregate pentru mai mult de un set de rânduri. Clauza ORDER BY este aplicabilă atunci când dorim să obținem datele obținute printr-o interogare în ordinea de sortare . Înainte de a face comparația, vom cunoaște mai întâi aceste clauze SQL.

GROUP BY vs. ORDER BY

ORDER BY Clauza

Clauza ORDER BY este folosită în interogările SQL pentru a sorta datele returnate de o interogare în ordine crescătoare sau descrescătoare. Dacă omitem ordinea de sortare, acesta sortează implicit rezultatul rezumat în ordine crescătoare. Clauza ORDER BY, ca și clauza GROUP BY, poate fi folosită împreună cu instrucțiunea SELECT. ASC denotă ordine crescătoare, în timp ce DESC denotă ordine descrescătoare.

Următoarea este sintaxa pentru a utiliza clauza ORDER BY într-o instrucțiune SQL:

cum se apelează o metodă în java
 SELECT expressions FROM tables [WHERE conditions] ORDER BY expression [ ASC | DESC ]; 

Să înțelegem cum funcționează clauza ORDER BY cu ajutorul următorului exemplu. Să presupunem că avem o masă dezvoltator care contine urmatoarele date:

GROUP BY vs. ORDER BY

Putem vedea că aceste rezultate nu sunt afișate într-un mod organizat. Să presupunem că vrem să organizăm rezultatele în ordine crescătoare sau descrescătoare pe baza coloana de stat . În acest caz, am avea nevoie de comanda ORDER BY pentru a obține rezultatul dorit. Putem face acest lucru executând comanda după cum urmează:

 mysql> SELECT D_name, D_state, D_salary FROM developers ORDER BY D_state ASC; 

Iată rezultatul de unde vom obține rezultatele dorite:

GROUP BY vs. ORDER BY

GROUP BY Clauza

Clauza GROUP BY este utilizată în interogările SQL pentru a organiza date care au aceleași valori de atribut. De obicei, îl folosim cu instrucțiunea SELECT. Este întotdeauna să ne amintim că trebuie să plasăm clauza GROUP BY după clauza WHERE. În plus, este ritmat înainte de clauza ORDER BY.

Putem folosi adesea această clauză în colaborare cu funcții agregate precum SUM, AVG, MIN, MAX și COUNT pentru a produce rapoarte rezumative din baza de date. Este important să rețineți că atributul din această clauză trebuie să apară în clauza SELECT, nu sub o funcție de agregare. Dacă facem acest lucru, interogarea ar fi incorectă. Ca rezultat, clauza GROUP BY este întotdeauna folosită împreună cu clauza SELECT. Interogarea pentru clauza GROUP BY este o interogare grupată și returnează un singur rând pentru fiecare obiect grupat.

alinierea imaginilor în css

Următoarea este sintaxa pentru a utiliza clauza GROUP BY într-o instrucțiune SQL:

 SELECT column_name, function(column_name) FROM table_name WHERE condition GROUP BY column_name; 

Să înțelegem cum funcționează clauza GROUP BY cu ajutorul unui exemplu. Aici o vom demonstra cu același tabel.

Să presupunem că vrem să știm salariul mediu al dezvoltatorului într-un anumit stat și organizați rezultatele în ordine descrescătoare pe baza coloanei de stare. În acest caz, am avea nevoie atât de comanda GROUP BY cât și ORDER BY pentru a obține rezultatul dorit. Putem face acest lucru executând comanda după cum urmează:

 mysql> SELECT D_state, avg(D_salary) AS salary FROM developers GROUP BY D_state ORDER BY D_state DESC; 

Această interogare a format inițial un rezultat intermediar care a grupat starea. În continuare, cel AVG funcția este efectuată pe fiecare grup de stări, apoi sortați rezultatul în ordine descrescătoare și, în final, vom obține rezultatele dorite după cum se arată mai jos:

GROUP BY vs. ORDER BY

Diferențele cheie între GROUP BY și ORDER BY

Următoarele sunt diferențele cheie dintre clauza Group By și Order By:

  • Clauza Group By este utilizată pentru a grupa datele pe baza aceleiași valori într-o anumită coloană. Clauza ORDER BY, pe de altă parte, sortează rezultatul și îl arată în ordine crescătoare sau descrescătoare.
  • Este obligatoriu să utilizați funcția de agregare pentru a utiliza Gruparea după. Pe de altă parte, nu este obligatoriu să folosiți funcția de agregare pentru a folosi comanda Order By.
  • Atributul nu poate fi sub instrucțiunea GROUP BY sub funcția agregată, în timp ce atributul poate fi în instrucțiunea ORDER BY sub funcția agregată.
  • Clauza Group By controlează prezentarea tuplurilor, ceea ce înseamnă că gruparea se face pe baza asemănării dintre valorile atributelor rândului. În schimb, clauza ORDER BY controlează prezentarea coloanelor, ceea ce înseamnă că ordonarea sau sortarea se face pe baza valorilor atributelor coloanei fie în ordine crescătoare, fie în ordine descrescătoare.
  • GROUP BY este întotdeauna plasat după clauza WHERE, dar înaintea instrucțiunii ORDER BY. Pe de altă parte, ORDER BY este întotdeauna folosit după instrucțiunea GROUP BY.

GROUP BY vs. ORDER BY Tabel de comparație

Următorul grafic de comparație explică principalele diferențe ale acestora într-un mod rapid:

SN A SE GRUPA CU COMANDA PENTRU
1. Este folosit pentru a grupa rândurile care au aceleași valori. Sortează setul de rezultate fie în ordine crescătoare, fie în ordine descrescătoare.
2. Poate fi permis în instrucțiunea CREATE VIEW. Nu este permis în instrucțiunea CREATE VIEW
3. Controlează prezentarea rândurilor. Controlează prezentarea coloanelor.
4. Atributul nu poate fi sub funcția agregată din instrucțiunea GROUP BY. Atributul poate fi sub funcția agregată din instrucțiunea ORDER BY.
5. Este întotdeauna folosit înaintea clauzei ORDER BY în instrucțiunea SELECT. Este întotdeauna folosit după clauza GROUP BY din instrucțiunea SELECT.
6. Este obligatoriu să folosiți funcții agregate în GROUP BY. Nu este obligatoriu să folosiți funcții agregate în ORDER BY.
7. Aici, gruparea se face pe baza asemănării dintre valorile atributelor rândului. Aici, setul de rezultate este sortat pe baza valorilor atributelor coloanei, fie în ordine crescătoare, fie în ordine descrescătoare.

Concluzie

Clauzele GROUP BY și ORDER BY sunt comparate în acest articol. Ambele clauze sunt caracteristici extrem de utile ale bazei de date SQL. Când dorim să formăm un grup de rânduri, folosim clauza GROUP BY. Dacă dorim să organizăm datele în ordine crescătoare sau descrescătoare pe baza unei anumite coloane, folosim clauza ORDER BY. Nu au nicio relație deoarece ambele sunt folosite în două scopuri diferite. Cu toate acestea, le putem combina pentru a servi unui scop special sau le putem folosi individual, în funcție de circumstanțe. Putem folosi aceste clauze numai cu instrucțiunea SELECT.

converti boolean în șir