Разница между группами By и Order By в SQL

Автор: Laura McKinney
Дата создания: 1 Апрель 2021
Дата обновления: 15 Май 2024
Anonim
Группировка в SQL | Основы SQL
Видео: Группировка в SQL | Основы SQL

Содержание


SQL позволяет систематизировать данные, полученные по запросу. У нас есть два предложения для организации данных, полученных из запроса: предложения Group By и Order By. Пункт, который отличает предложения Group By и Order By, заключается в том, что Группа по Предложение используется, когда мы хотим применить агрегатную функцию к нескольким наборам кортежей и Сортировать по Предложение используется, когда мы хотим отсортировать данные, полученные запросом. Давайте обсудим некоторые различия между предложением Group By и предложением Order By с помощью сравнительной таблицы, показанной ниже.

  1. Сравнительная таблица
  2. Определение
  3. Ключевые отличия
  4. Вывод

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

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

Определение группы по пункту

Агрегатные функции, такие как avg, min, max, sum, count, применяются к одному набору кортежей. В случае, если вы хотите применить агрегатные функции к группе из набора кортежей, у нас есть предложение Group by для этого. Сгруппировать по группам группирует кортежи с одинаковым значением атрибута


Есть одна вещь, чтобы помнить о предложении Group By, убедитесь, что атрибут под Группа по пункт должен появиться в ВЫБРАТЬ оговорка но не под агрегатная функция, Если предложение Group By содержит атрибут, который находится не в предложении SELECT, или если он находится в предложении SELECT, но под агрегатной функцией, запрос становится ошибочным. Следовательно, мы можем сказать, что предложение Group By всегда используется в сотрудничестве с предложением SELECT.

Давайте возьмем пример для понимания предложения Group By.

ВЫБЕРИТЕ Отдел _ID, avg (Зарплата) как avg_salary из Учительской группы По Department_ID.


Вы можете видеть, что изначально формируется промежуточный результат, который сгруппировал отделы.

Далее, агрегатная функция avg применяется к каждой группе отделов, и результат показан ниже.

Определение порядка по пунктам

Предложение Order By используется для отображения данных, полученных по запросу, в отсортированном порядке. Как и предложение Group By, предложение Order By также используется в сотрудничестве с предложением SELECT. Если вы не упомянули порядок сортировки, предложение Order By сортирует данные в порядке возрастания. Вы можете указать возрастающий порядок как по возрастанию и в порядке убывания по убыванию.

Давайте разберемся с работой пункта Order By с помощью следующего примера. У нас есть таблица учителя, и я буду применять сортировку к двум столбцам Department_Id и Salary таблицы учителя.

Выберите Department_ID, Заработная плата из заказа учителя по Department_Id asc, Зарплата desc.

Вы можете видеть, что сначала он упорядочивает _ID отдела в порядке возрастания, а затем упорядочивает оклады в том же отделе в порядке убывания.

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

Вывод:

Если вы хотите сформировать группу из набора кортежей, то вы должны использовать предложение Group By. Если вы хотите упорядочить данные одного столбца или нескольких столбцов в наборе кортежей в порядке возрастания или убывания, то следует использовать предложение Order By.