Разница между группами By и Order By в SQL
Содержание
SQL позволяет систематизировать данные, полученные по запросу. У нас есть два предложения для организации данных, полученных из запроса: предложения Group By и Order By. Пункт, который отличает предложения Group By и Order By, заключается в том, что Группа по Предложение используется, когда мы хотим применить агрегатную функцию к нескольким наборам кортежей и Сортировать по Предложение используется, когда мы хотим отсортировать данные, полученные запросом. Давайте обсудим некоторые различия между предложением Group By и предложением Order By с помощью сравнительной таблицы, показанной ниже.
- Сравнительная таблица
- Определение
- Ключевые отличия
- Вывод
Сравнительная таблица
Основа для сравнения | Группа по | Сортировать по |
---|---|---|
основной | 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 отдела в порядке возрастания, а затем упорядочивает оклады в том же отделе в порядке убывания.- Предложение Group By группирует набор кортежей в отношении, которые находятся в предложении SELECT. С другой стороны, предложение Order By сортирует результат запроса в порядке возрастания или убывания.
- Атрибут в агрегатной функции не может быть в предложении Group By, тогда как атрибут в агрегатной функции может быть в предложении Order By.
- Группировка кортежей выполняется на основе сходства значений атрибутов кортежей. С другой стороны, упорядочение или сортировка выполняется на основе возрастающего или убывающего порядка.
Вывод:
Если вы хотите сформировать группу из набора кортежей, то вы должны использовать предложение Group By. Если вы хотите упорядочить данные одного столбца или нескольких столбцов в наборе кортежей в порядке возрастания или убывания, то следует использовать предложение Order By.