Разлика между Group By и Order By в SQL

Автор: Laura McKinney
Дата На Създаване: 1 Април 2021
Дата На Актуализиране: 11 Може 2024
Anonim
MySQL въведение
Видео: MySQL въведение

Съдържание


SQL позволява да се организират данните, получени от заявката. Имаме две клаузи за организиране на данните, получени от заявката, които са клауза за групиране по ред и поръчка. Въпросът, който отличава клаузата Group By и Order By, е този Групирай по клаузата се използва, когато искаме да приложим функцията агрегат към повече от един набор кортези и Подредени по клаузата се използва, когато искаме да сортираме данните, получени чрез заявката. Нека обсъдим някои разлики между клауза „Група по клауза“ и клауза „Подредба по поръчка“ с помощта на сравнителната диаграма, показана по-долу.

  1. Сравнителна диаграма
  2. дефиниция
  3. Ключови разлики
  4. заключение

Сравнителна диаграма

Основа за сравнениеГрупирай поПодредени по
ОсновенGroup By се използва за формиране на групата от множеството на кортежите.Order By се използва за подреждане на данните, получени в резултат на заявка в сортирана форма.
Атрибут Атрибутите под агрегирана функция не могат да бъдат в клауза за група по.Атрибутите под агрегат могат да бъдат подредени по клауза.
приземенСъставено въз основа на сходство между стойностите на атрибутите.Съставено на основание на възходящ ред и низходящ ред.

Определение на група по клауза

Сборните функции като avg, min, max, sum, count се прилагат към единичния набор от кортежи. В случай, че ако искате да приложите съвкупните функции към групата от множеството кортежи, имаме група по клауза за това. Групиране по клауза групира кортежите, които имат една и съща стойност на атрибут.


Има едно нещо помня относно групата По клаузата, бъдете сигурни, че атрибут под Групирай по клаузата трябва да се появи в SELECT клауза, но не под агрегатна функция, Ако клаузата Group By съдържа атрибут, който не е под клавиша SELECT или ако е под клауза SELECT, а под функция агрегат, заявката става грешна. Следователно можем да кажем, че клаузата Group By винаги се използва в сътрудничество с клаузата SELECT.

Нека вземем пример, за да разберем клаузата Group By.

ИЗБЕРЕТЕ Отдел _ID, avg (Заплата) като avg_salary от групата учители по отдел_ID.

Можете да видите, че първоначално се формира междинен резултат, който е групирал отделите.


След това, средната функция avg се прилага към всяка група отдели и резултатът е показан по-долу.

Определяне на поръчка по клауза

Клауза "Подредба" се използва за показване на данни, получени чрез заявка в подредения ред. Подобно на клаузата Group By, клаузата Order By се използва и в сътрудничество с клаузата SELECT. Ако не споменавате подредбата за сортиране, клауза Order By подрежда данните във възходящия ред. Можете да посочите възходящ ред като възходящо и низходящ ред като низходящо.

Нека да разберем работата на поръчка чрез клауза с помощта на следния пример. Имаме таблица Учител и аз ще прилагам сортиране към две колони отдел_Id и заплата на таблицата Учител.

Изберете отдел_ID, заплата от поръчка на учител по отдел_Изн. Възв., Заплата

Можете да видите, че първо той подрежда отдела _ID във възходящ ред и след това подрежда заплатите в същия отдел по низходящ ред.

  1. Групиране по клауза групира множеството кортежи във връзка, които са под клаузата SELECT. От друга страна, клаузата Order By подрежда резултата от заявката във възходящ или низходящ ред.
  2. Атрибутът под функция агрегат не може да бъде под клауза за група, докато атрибутът под функция агрегат може да присъства в клауза Подреждане по.
  3. Групирането на кортежите се извършва въз основа на сходството между стойностите на атрибутите на кортежите. От друга страна, подреждането или сортирането се извършва въз основа на възходящ ред или низходящ ред.

Заключение:

Ако искате да формирате групата от множеството кортежи, тогава трябва да използвате клауза за група по. В случай, че искате да подредите данните на една колона или повече от една колона в набора от кортежи във възходящ или низходящ ред, тогава трябва да се използва клауза „По поръчка“.