Препоръчано, 2024

Избор На Редактора

Разлика между групата и реда по SQL

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

Сравнителна таблица

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

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

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

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

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

SELECT Отдел _ID, avg (Заплата) като avg_salary от групата на учителите по Department_ID.

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

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

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

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

Нека разберем работата на клаузата Order By с помощта на следния пример. Разполагаме с Учителска маса и ще кандидатствам за сортиране на две колони Department_Id и Salary на таблицата учител.

Изберете Department_ID, Заплата от Учителска поръчка по Департамент -в възходящо, Заплащане desc.

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

Ключови разлики между групата и поръчката от

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

Заключение:

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

Top