Tento článok vysvetľuje úplný prehľad klauzúl GROUP BY a ORDER BY. Používajú sa hlavne na organizáciu údajov získaných SQL dotazmi. Rozdiel medzi týmito vetami je jedným z najčastejších miest, kde sa pri učení zasekávame SQL . Hlavný rozdiel medzi nimi je v tom klauzula GROUP BY je použiteľná, keď chceme použiť agregačné funkcie pre viac ako jednu sadu riadkov. Klauzula ORDER BY je použiteľná, keď chceme získať údaje získané dotazom v poradí zoradenia . Pred vykonaním porovnania najprv poznáme tieto klauzuly SQL.
OBJEDNAŤ PODĽA klauzuly
Klauzula ORDER BY sa používa v dotazoch SQL na triedenie údajov vrátených dotazom vo vzostupnom alebo zostupnom poradí. Ak vynecháme zoradenie, súhrnný výsledok štandardne zoradí vzostupne. Klauzula ORDER BY, podobne ako klauzula GROUP BY, sa môže použiť v spojení s príkazom SELECT. ASC označuje vzostupné poradie, zatiaľ čo DESC označuje zostupné poradie.
Nasleduje syntax na použitie klauzuly ORDER BY v príkaze SQL:
vek ankita lokhande
SELECT expressions FROM tables [WHERE conditions] ORDER BY expression [ ASC | DESC ];
Poďme pochopiť, ako funguje klauzula ORDER BY pomocou nasledujúceho príkladu. Predpokladajme, že máme stôl vývojár ktorý obsahuje nasledujúce údaje:
Vidíme, že tieto výsledky sa nezobrazujú usporiadaným spôsobom. Predpokladajme, že chceme usporiadať výsledky vo vzostupnom alebo zostupnom poradí na základe štátny stĺpec . V takom prípade by sme na získanie požadovaného výsledku potrebovali príkaz ORDER BY. Môžeme to urobiť vykonaním príkazu takto:
mysql> SELECT D_name, D_state, D_salary FROM developers ORDER BY D_state ASC;
Tu je výstup, kde dosiahneme požadované výsledky:
GROUP BY klauzule
Klauzula GROUP BY sa používa v dotazoch SQL na organizáciu údajov, ktoré majú rovnaké hodnoty atribútov. Zvyčajne ho používame s príkazom SELECT . Vždy je potrebné mať na pamäti, že klauzulu GROUP BY musíme umiestniť za klauzulu WHERE. Okrem toho je temporované pred klauzulou ORDER BY.
Túto klauzulu môžeme často použiť v spolupráci so súhrnnými funkciami, ako sú SUM, AVG, MIN, MAX a COUNT, na vytváranie súhrnných správ z databázy. Je dôležité si zapamätať, že atribút v tejto klauzule sa musí nachádzať v klauzule SELECT, nie pod agregovanou funkciou. Ak tak urobíme, dopyt by bol nesprávny. V dôsledku toho sa klauzula GROUP BY vždy používa v spojení s klauzulou SELECT. Dopyt pre klauzulu GROUP BY je zoskupený dotaz a vracia jeden riadok pre každý zoskupený objekt.
if-else príkaz java
Nasleduje syntax na použitie klauzuly GROUP BY v príkaze SQL:
SELECT column_name, function(column_name) FROM table_name WHERE condition GROUP BY column_name;
Poďme pochopiť, ako funguje klauzula GROUP BY pomocou príkladu. Tu to demonštrujeme s rovnakou tabuľkou.
Predpokladajme, že to chceme vedieť priemerný plat vývojára v konkrétnom štáte a usporiadať výsledky v zostupnom poradí na základe stĺpca stavu. V takom prípade by sme na získanie požadovaného výsledku potrebovali príkazy GROUP BY aj ORDER BY. Môžeme to urobiť vykonaním príkazu takto:
mysql> SELECT D_state, avg(D_salary) AS salary FROM developers GROUP BY D_state ORDER BY D_state DESC;
Tento dotaz pôvodne tvoril medzivýsledok, ktorý zoskupil stav. Ďalej, AVG funkcia sa vykonáva pre každú skupinu stavov, potom zoraďte výsledok v zostupnom poradí a nakoniec získame požadované výsledky, ako je uvedené nižšie:
Kľúčové rozdiely medzi GROUP BY a ORDER BY
Nasledujú kľúčové rozdiely medzi doložkou Zoskupiť a Zoradiť podľa:
- Klauzula Group By sa používa na zoskupenie údajov na základe rovnakej hodnoty v konkrétnom stĺpci. Klauzula ORDER BY na druhej strane zoradí výsledok a zobrazí ho vo vzostupnom alebo zostupnom poradí.
- Na používanie funkcie Zoskupiť je povinné použiť agregovanú funkciu. Na druhej strane nie je povinné používať agregovanú funkciu na použitie objednávky podľa.
- Atribút nemôže byť pod príkazom GROUP BY pod agregovanou funkciou, zatiaľ čo atribút môže byť pod príkazom ORDER BY pod agregovanou funkciou.
- Klauzula Group By riadi prezentáciu n-tic, čo znamená, že zoskupovanie sa vykonáva na základe podobnosti medzi hodnotami atribútov riadka. Na rozdiel od toho klauzula ORDER BY riadi prezentáciu stĺpcov, čo znamená, že zoradenie alebo zoradenie sa vykonáva na základe hodnôt atribútov stĺpca buď vo vzostupnom alebo zostupnom poradí.
- GROUP BY je vždy umiestnené za klauzulou WHERE, ale pred príkazom ORDER BY. Na druhej strane, ORDER BY sa vždy používa za príkazom GROUP BY.
GROUP BY vs. ORDER BY Porovnávacia tabuľka
Nasledujúca porovnávacia tabuľka rýchlo vysvetľuje ich hlavné rozdiely:
SN | GROUP BY | ZORADIŤ PODĽA |
---|---|---|
1. | Používa sa na zoskupenie riadkov, ktoré majú rovnaké hodnoty. | Zoradí sadu výsledkov buď vo vzostupnom alebo zostupnom poradí. |
2. | Môže to byť povolené v príkaze CREATE VIEW. | V príkaze CREATE VIEW to nie je povolené |
3. | Riadi prezentáciu riadkov. | Riadi prezentáciu stĺpcov. |
4. | Atribút nemôže byť pod agregovanou funkciou pod príkazom GROUP BY. | Atribút môže byť pod agregovanou funkciou pod príkazom ORDER BY. |
5. | Vždy sa používa pred klauzulou ORDER BY v príkaze SELECT. | Vždy sa používa za klauzulou GROUP BY v príkaze SELECT. |
6. | V GROUP BY je povinné používať agregačné funkcie. | Nie je povinné používať agregačné funkcie v ORDER BY. |
7. | Tu sa zoskupenie vykonáva na základe podobnosti medzi hodnotami atribútov riadka. | Tu je množina výsledkov zoradená na základe hodnôt atribútov stĺpca vo vzostupnom alebo zostupnom poradí. |
Záver
V tomto článku sú porovnané klauzuly GROUP BY a ORDER BY. Obe klauzuly sú mimoriadne užitočné funkcie databázy SQL. Keď chceme vytvoriť skupinu riadkov, použijeme klauzulu GROUP BY. Ak chceme usporiadať údaje vo vzostupnom alebo zostupnom poradí na základe konkrétneho stĺpca, použijeme klauzulu ORDER BY. Nemajú žiadny vzťah, pretože oba sa používajú na dva rôzne účely. Môžeme ich však kombinovať, aby slúžili nejakému špeciálnemu účelu, alebo ich môžeme použiť jednotlivo v závislosti od okolností. Tieto klauzuly môžeme použiť iba s príkazom SELECT.
správca powershell