Rozdíl mezi skupinami podle a pořadí podle v SQL

Autor: Laura McKinney
Datum Vytvoření: 1 Duben 2021
Datum Aktualizace: 9 Smět 2024
Anonim
Rozdíl mezi skupinami podle a pořadí podle v SQL - Technologie
Rozdíl mezi skupinami podle a pořadí podle v SQL - Technologie

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.

  1. Srovnávací tabulka
  2. Definice
  3. Klíčové rozdíly
  4. 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í.

  1. 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ě.
  2. 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.
  3. 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.