Rozdíl mezi skupinami podle a pořadí podle v SQL
Obsah
SQL umožňuje uspořádat data získaná dotazem. Máme dvě klauzule pro organizování dat získaných z dotazu, které jsou klauzula Group By a Order By. Bod, který odlišuje klauzuli Group By a Order By je, že Skupina vytvořená Klauzule se používá, když chceme použít agregační funkci na více než jednu sadu n-tic a Seřadit podle klauzule se používá, když chceme seřadit data získaná dotazem. Podívejme se na některé rozdíly mezi klauzulí Group By a Order By klauzule pomocí níže uvedené srovnávací tabulky.
- Srovnávací tabulka
- Definice
- Klíčové rozdíly
- Závěr
Srovnávací tabulka
Základ pro srovnání | Skupina vytvořená | Seřadit podle |
---|---|---|
Základní | Group By se používá k vytvoření skupiny sady n-tic. | Order By se používá k uspořádání dat získaných na základě dotazu v podobě řazení. |
Atribut | Atribut v rámci funkce agregace nemůže být v klauzuli Group By. | Atribut pod agregátem může být v klauzuli Order By Clause. |
Přízemní | Dáno z důvodu podobnosti mezi hodnotami atributů. | Dáno z důvodu vzestupného a sestupného pořadí. |
Definice skupiny podle klauzule
Agregační funkce jako avg, min, max, sum, count jsou aplikovány na jednu sadu n-tic. V případě, že chcete aplikovat agregační funkce na skupinu sady n-tic, máme na to klauzuli Group by. Seskupit podle klauzule seskupí n-tice, které mají stejnou hodnotu atributu.
Je tu jedna věc zapamatovat si o klauzuli Group By se ujistěte, že atribut pod Skupina vytvořená klauzule se musí objevit v VYBRAT klauzule ale ne pod agregovaná funkce. Pokud klauzula Group By obsahuje atribut, který není v klauzuli SELECT nebo pokud je v klauzuli SELECT, ale v agregované funkci, dotaz se stane chybným. Můžeme tedy říci, že klauzule Group By se vždy používá ve spolupráci s klauzulí SELECT.
Vezměme si příklad, abychom pochopili klauzuli Group By.
VÝBĚR Oddělení _ID, avg (Plat) jako avg_salary ze Skupiny učitelů Podle Oddělení_ID.Můžete vidět, že zpočátku se vytvoří přechodný výsledek, který seskupil oddělení. Dále je agregační funkce avg aplikována na každou skupinu oddělení a výsledek je uveden níže.
Definice pořadí podle klauzule
Klauzula Order By se používá k zobrazení dat získaných dotazem v seřazeném pořadí. Podobně jako klauzule Group By se klauzula Order By používá také ve spolupráci s klauzulí SELECT. Pokud nezadáte pořadí řazení, klauzula Řadit podle třídí data ve vzestupném pořadí. Můžete zadat vzestupné pořadí jako asc a sestupně jako desc.
Pojďme porozumět fungování klauzule Order By pomocí následujícího příkladu. Máme učitelský stůl a já použiji třídění na dva sloupce Department_Id a Salary z učitelského stolu.
Vyberte Department_ID, Plat z příkazu učitele By Department_Id asc, Salac desc. Můžete vidět, že nejprve uspořádá oddělení _ID ve vzestupném pořadí a poté uspořádá platy ve stejném oddělení v sestupném pořadí.- Seskupit podle klauzule seskupí n-tice ve vztahu, který je v klauzuli SELECT. Na druhou stranu klauzula Řadit podle třídí výsledek dotazu vzestupně nebo sestupně.
- Atribut v agregované funkci nemůže být v klauzuli Group By, zatímco atribut v agregované funkci může být v klauzuli Order By.
- Seskupení n-tic se provádí na základě podobnosti mezi hodnotami atributů n-tic. Na druhé straně se řazení nebo třídění provádí na základě vzestupného nebo sestupného pořadí.
Závěr:
Pokud chcete vytvořit skupinu sady n-tic, musíte použít klauzuli Group By. V případě, že chcete uspořádat data jednoho sloupce nebo více sloupců v sadě n-tic ve vzestupném nebo sestupném pořadí, musíte použít klauzuli Řadit podle.