Šajā rakstā ir izskaidrots pilns pārskats par klauzulu GROUP BY un ORDER BY. Tos galvenokārt izmanto, lai sakārtotu datus, kas iegūti ar SQL vaicājumiem. Atšķirība starp šīm klauzulām ir viena no visbiežāk sastopamajām vietām, kur mācoties var iestrēgt SQL . Galvenā atšķirība starp tām ir tā klauzula GROUP BY ir piemērojama, ja mēs vēlamies izmantot apkopotās funkcijas vairāk nekā vienai rindu kopai. ORDER BY klauzula ir piemērojama, ja mēs vēlamies iegūt ar vaicājumu iegūtos datus šķirošanas secībā . Pirms salīdzināšanas mēs vispirms uzzināsim šīs SQL klauzulas.
PASŪTĪJUMS PĒC klauzulas
ORDER BY klauzula tiek izmantota SQL vaicājumos, lai kārtotu vaicājuma atgrieztos datus augošā vai dilstošā secībā. Ja mēs izlaižam kārtošanas secību, tas pēc noklusējuma sakārto apkopoto rezultātu augošā secībā. Klauzulu ORDER BY, tāpat kā klauzulu GROUP BY, var izmantot kopā ar priekšrakstu SELECT. ASC apzīmē augošā secībā, kamēr DESC apzīmē dilstošu secību.
Tālāk ir norādīta sintakse klauzulas ORDER BY izmantošanai SQL priekšrakstā:
resursu sadales grafiks
SELECT expressions FROM tables [WHERE conditions] ORDER BY expression [ ASC | DESC ];
Ļaujiet mums saprast, kā darbojas klauzula ORDER BY, izmantojot šādu piemēru. Pieņemsim, ka mums ir galds izstrādātājs kas satur šādus datus:
Mēs redzam, ka šie rezultāti netiek parādīti organizētā veidā. Pieņemsim, ka mēs vēlamies sakārtot rezultātus augošā vai dilstošā secībā, pamatojoties uz stāvokļa kolonna . Tādā gadījumā mums būtu nepieciešama komanda ORDER BY, lai iegūtu vēlamo rezultātu. Mēs to varam izdarīt, izpildot komandu šādi:
mysql> SELECT D_name, D_state, D_salary FROM developers ORDER BY D_state ASC;
Šeit ir izvade, kurā mēs iegūsim vēlamos rezultātus:
GROUP BY klauzula
Klauzulu GROUP BY izmanto SQL vaicājumos, lai sakārtotu datus, kuriem ir vienādas atribūtu vērtības. Parasti mēs to izmantojam ar SELECT priekšrakstu. Vienmēr ir jāatceras, ka klauzula GROUP BY ir jānovieto aiz WHERE klauzulas. Turklāt tas ir paced pirms klauzulas ORDER BY.
Mēs bieži varam izmantot šo klauzulu sadarbībā ar apkopotajām funkcijām, piemēram, SUM, AVG, MIN, MAX un COUNT, lai sagatavotu kopsavilkuma atskaites no datu bāzes. Ir svarīgi atcerēties, ka šīs klauzulas atribūtam ir jāparādās klauzulā SELECT, nevis apkopotā funkcijā. Ja mēs to darītu, vaicājums būtu nepareizs. Rezultātā klauzula GROUP BY vienmēr tiek izmantota kopā ar klauzulu SELECT. Klauzulas GROUP BY vaicājums ir grupēts vaicājums, un tas atgriež vienu rindu katram grupētajam objektam.
satur java metodi
Tālāk ir norādīta sintakse GROUP BY klauzulas izmantošanai SQL priekšrakstā:
SELECT column_name, function(column_name) FROM table_name WHERE condition GROUP BY column_name;
Ļaujiet mums saprast, kā darbojas klauzula GROUP BY, izmantojot piemēru. Šeit mēs to demonstrēsim ar to pašu tabulu.
Pieņemsim, ka mēs vēlamies zināt izstrādātāja vidējā alga noteiktā valstī un sakārtot rezultātus dilstošā secībā, pamatojoties uz stāvokļa kolonnu. Tādā gadījumā mums būtu nepieciešamas gan komandas GROUP BY, gan ORDER BY, lai iegūtu vēlamo rezultātu. Mēs to varam izdarīt, izpildot komandu šādi:
mysql> SELECT D_state, avg(D_salary) AS salary FROM developers GROUP BY D_state ORDER BY D_state DESC;
Šis vaicājums sākotnēji veidoja starprezultātu, kas ir grupējis stāvokli. Tālāk, AVG funkcija tiek veikta katrai stāvokļu grupai, pēc tam sakārtojiet rezultātu dilstošā secībā un, visbeidzot, iegūsim vēlamos rezultātus, kā parādīts zemāk:
Galvenās atšķirības starp GROUP BY un ORDER BY
Tālāk ir norādītas galvenās atšķirības starp klauzulu Group by un Order By:
- Grupēšanas klauzula tiek izmantota, lai grupētu datus, pamatojoties uz to pašu vērtību noteiktā kolonnā. Savukārt ORDER BY klauzula sakārto rezultātu un parāda to augošā vai dilstošā secībā.
- Lai izmantotu grupu pēc, ir obligāti jāizmanto apkopošanas funkcija. No otras puses, nav obligāti jāizmanto apkopošanas funkcija, lai izmantotu pasūtījumu pēc.
- Atribūts nevar atrasties priekšrakstā GROUP BY, izmantojot apkopošanas funkciju, savukārt atribūtu var atrast priekšrakstā ORDER BY, izmantojot apkopošanas funkciju.
- Grupēšanas klauzula kontrolē korežu prezentāciju, kas nozīmē, ka grupēšana tiek veikta, pamatojoties uz rindas atribūtu vērtību līdzību. Turpretim klauzula ORDER BY kontrolē kolonnu prezentāciju, kas nozīmē, ka kārtošana vai kārtošana tiek veikta, pamatojoties uz kolonnas atribūtu vērtībām augošā vai dilstošā secībā.
- GROUP BY vienmēr tiek ievietots aiz WHERE klauzulas, bet pirms priekšraksta ORDER BY. No otras puses, ORDER BY vienmēr tiek lietots aiz GROUP BY paziņojuma.
GROUP BY vs. ORDER BY salīdzināšanas diagramma
Šajā salīdzināšanas tabulā ir ātri izskaidrotas to galvenās atšķirības:
SN | GROUP BY | SAKĀRTOT PĒC |
---|---|---|
1. | To izmanto, lai grupētu rindas, kurām ir vienādas vērtības. | Tas sakārto rezultātu kopu augošā vai dilstošā secībā. |
2. | Tas var būt atļauts paziņojumā CREATE VIEW. | Tas nav atļauts priekšrakstā CREATE VIEW |
3. | Tas kontrolē rindu prezentāciju. | Tas kontrolē kolonnu prezentāciju. |
4. | Atribūts nevar būt zem apkopošanas funkcijas priekšrakstā GROUP BY. | Atribūts var būt zem apkopošanas funkcijas zem priekšraksta ORDER BY. |
5. | Tas vienmēr tiek izmantots pirms ORDER BY klauzulas priekšrakstā SELECT. | Tas vienmēr tiek izmantots aiz GROUP BY klauzulas priekšrakstā SELECT. |
6. | Grupā GROUP BY ir obligāti jāizmanto apkopotās funkcijas. | Apkopotās funkcijas nav obligāti jāizmanto ORDER BY. |
7. | Šeit grupēšana tiek veikta, pamatojoties uz rindas atribūtu vērtību līdzību. | Šeit rezultātu kopa tiek kārtota, pamatojoties uz kolonnas atribūtu vērtībām augošā vai dilstošā secībā. |
Secinājums
Šajā rakstā ir salīdzinātas klauzulas GROUP BY un ORDER BY. Abas klauzulas ir ārkārtīgi noderīgas SQL datu bāzes funkcijas. Ja vēlamies izveidot rindu grupu, mēs izmantojam klauzulu GROUP BY. Ja mēs vēlamies kārtot datus augošā vai dilstošā secībā, pamatojoties uz noteiktu kolonnu, mēs izmantojam klauzulu ORDER BY. Viņiem nav nekādu attiecību, jo abi tiek izmantoti diviem dažādiem mērķiem. Tomēr mēs varam tos kombinēt, lai tie kalpotu kādam īpašam mērķim, vai arī izmantot tos atsevišķi atkarībā no apstākļiem. Mēs varam izmantot šīs klauzulas tikai ar SELECT priekšrakstu.
npm tīrīšanas kešatmiņas spēks