logo

GROUP BY vs. ORDER BY

Šiame straipsnyje paaiškinama visa GROUP BY ir ORDER BY sąlygų apžvalga. Jie daugiausia naudojami tvarkyti duomenis, gautus naudojant SQL užklausas. Skirtumas tarp šių sąlygų yra viena iš labiausiai paplitusių vietų, kurios užstringa mokantis SQL . Pagrindinis skirtumas tarp jų yra tas sąlyga GROUP BY taikoma, kai norime naudoti suvestines funkcijas daugiau nei vienam eilučių rinkiniui. Sąlyga ORDER BY taikoma, kai norime gauti duomenis, gautus pagal užklausą rūšiavimo tvarka . Prieš atlikdami palyginimą, pirmiausia sužinosime šias SQL sąlygas.

GROUP BY vs. ORDER BY

UŽSAKYMAS PAGAL punktą

Sąlyga ORDER BY naudojama SQL užklausose, siekiant rūšiuoti užklausos grąžintus duomenis didėjančia arba mažėjančia tvarka. Jei praleidžiame rūšiavimo tvarką, jis pagal numatytuosius nustatymus surūšiuoja apibendrintą rezultatą didėjančia tvarka. Sąlyga ORDER BY, kaip ir sąlyga GROUP BY, gali būti naudojama kartu su SELECT sakiniu. ASC žymi didėjančia tvarka, o DESC žymi mažėjančia tvarka.

Toliau pateikiama sintaksė, skirta ORDER BY naudoti SQL sakinyje:

visų didžiųjų raidžių spartusis klavišas Excel
 SELECT expressions FROM tables [WHERE conditions] ORDER BY expression [ ASC | DESC ]; 

Supraskime, kaip veikia sąlyga ORDER BY, naudodami šį pavyzdį. Tarkime, kad turime stalą programuotojas kuriame yra šie duomenys:

GROUP BY vs. ORDER BY

Matome, kad šie rezultatai nerodomi organizuotai. Tarkime, kad norime organizuoti rezultatus didėjančia arba mažėjančia tvarka pagal būsenos stulpelis . Tokiu atveju, norint gauti norimą rezultatą, mums reikės komandos ORDER BY. Tai galime padaryti vykdydami komandą taip:

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

Štai išvestis, kurioje gausime norimus rezultatus:

GROUP BY vs. ORDER BY

GROUP BY sąlyga

Sąlyga GROUP BY naudojama SQL užklausose duomenims, turintiems tas pačias atributų reikšmes, tvarkyti. Paprastai mes naudojame jį su teiginiu SELECT . Visada atminkite, kad GROUP BY turime įdėti po WHERE. Be to, jis suaktyvinamas prieš sąlygą ORDER BY.

Šią sąlygą dažnai galime naudoti bendradarbiaudami su agregacinėmis funkcijomis, tokiomis kaip SUM, AVG, MIN, MAX ir COUNT, kad sukurtume suvestines ataskaitas iš duomenų bazės. Svarbu atsiminti, kad šio sakinio atributas turi būti SELECT sąlygoje, o ne kaip agregacinė funkcija. Jei taip darytume, užklausa būtų neteisinga. Dėl to sąlyga GROUP BY visada naudojama kartu su SELECT sąlyga. Sąlygos GROUP BY užklausa yra sugrupuota ir kiekvienam sugrupuotam objektui pateikiama viena eilutė.

reakcijos lentelė

Toliau pateikiama sintaksė, skirta naudoti GROUP BY sąlygą SQL sakinyje:

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

Supraskime, kaip veikia sąlyga GROUP BY, naudodamiesi pavyzdžiu. Čia mes tai parodysime ta pačia lentele.

Tarkime, mes norime žinoti vidutinio kūrėjo atlyginimo konkrečioje valstybėje ir tvarkyti rezultatus mažėjančia tvarka pagal būsenos stulpelį. Tokiu atveju mums reikės ir GROUP BY, ir ORDER BY komandų, kad gautume norimą rezultatą. Tai galime padaryti vykdydami komandą taip:

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

Iš pradžių ši užklausa sudarė tarpinį rezultatą, sugrupavusį būseną. Toliau, AVG funkcija atliekama kiekvienai būsenų grupei, tada surūšiuokite rezultatą mažėjančia tvarka ir galiausiai gausime norimus rezultatus, kaip parodyta žemiau:

GROUP BY vs. ORDER BY

Pagrindiniai GROUP BY ir ORDER BY skirtumai

Toliau pateikiami pagrindiniai skirtumai tarp grupavimo pagal ir tvarką pagal:

  • Sąlyga „Grupuoti pagal“ naudojama duomenims grupuoti pagal tą pačią reikšmę konkrečiame stulpelyje. Kita vertus, sąlyga ORDER BY surūšiuoja rezultatą ir rodo jį didėjančia arba mažėjančia tvarka.
  • Norint naudoti grupę pagal, būtina naudoti agregavimo funkciją. Kita vertus, nebūtina naudoti agregavimo funkciją norint naudoti užsakymą pagal.
  • Atributas negali būti GROUP BY sakinyje pagal agregate funkciją, o atributas gali būti ORDER BY sakinyje pagal agregate funkciją.
  • „Group By“ sąlyga valdo kortelių pateikimą, o tai reiškia, kad grupavimas atliekamas pagal eilutės atributų reikšmių panašumą. Priešingai, sąlyga ORDER BY valdo stulpelių pateikimą, o tai reiškia, kad tvarka arba rūšiavimas atliekamas pagal stulpelio atributų reikšmes didėjančia arba mažėjančia tvarka.
  • GROUP BY visada dedamas po WHERE, bet prieš sakinį ORDER BY. Kita vertus, ORDER BY visada naudojamas po GROUP BY teiginio.

GROUP BY ir ORDER BY palyginimo diagrama

Šioje palyginimo lentelėje greitai paaiškinami pagrindiniai jų skirtumai:

SN GRUPUOTI PAGAL RŪŠIUOTI PAGAL
1. Jis naudojamas sugrupuoti tas pačias reikšmes turinčias eilutes. Jis rūšiuoja rezultatų rinkinį didėjančia arba mažėjančia tvarka.
2. Tai gali būti leidžiama CREATE VIEW sakinyje. Tai neleidžiama CREATE VIEW sakinyje
3. Jis valdo eilučių pateikimą. Jis valdo stulpelių pateikimą.
4. Atributas negali būti pagal agregatinę funkciją pagal GROUP BY sakinį. Atributas gali būti suvestinėje funkcijoje pagal ORDER BY sakinį.
5. Jis visada naudojamas prieš sakinį ORDER BY sakinyje SELECT. Jis visada naudojamas po sakinio GROUP BY sakinyje SELECT.
6. Grupėje GROUP BY privaloma naudoti suvestines funkcijas. Neprivaloma naudoti suvestinių funkcijų ORDER BY.
7. Čia grupavimas atliekamas pagal eilutės atributų reikšmių panašumą. Čia rezultatų rinkinys rūšiuojamas pagal stulpelio atributų reikšmes didėjimo arba mažėjimo tvarka.

Išvada

Šiame straipsnyje palyginamos sąlygos GROUP BY ir ORDER BY. Abi sąlygos yra labai naudingos SQL duomenų bazės funkcijos. Kai norime sudaryti eilučių grupę, naudojame sąlygą GROUP BY. Jei norime tvarkyti duomenis didėjančia arba mažėjančia tvarka pagal tam tikrą stulpelį, naudojame sąlygą ORDER BY. Jie neturi jokių santykių, nes abu naudojami dviem skirtingais tikslais. Tačiau galime juos derinti tam tikram tikslui arba naudoti atskirai, atsižvelgdami į aplinkybes. Šiuos sakinius galime naudoti tik su SELECT sakiniu.

Fibonacci kodas java