Рекомендуємо, 2021

Вибір Редакції

Різниця між груповим та порядковим за допомогою SQL

SQL дозволяє організувати дані, отримані за запитом. Ми маємо два пункти для організації даних, отриманих з запиту, що є статтею Group By і Order By. Точка, яка відрізняє речення Group By і Order By, полягає в тому, що пропозиція Group By використовується, коли ми хочемо застосувати агрегатну функцію до більш ніж одного набору кортежів, а пропозиція Order By використовується, коли ми хочемо відсортувати дані, отримані за запитом. Давайте розглянемо деякі відмінності між пунктом Group By та регламентом Order By за допомогою діаграми порівняння, показаної нижче.

Діаграма порівняння

Основа для порівнянняГрупа заСортувати за
ОсновнийGroup By використовується для формування групи наборів кортежів.Order By використовується для упорядкування даних, отриманих в результаті запиту в сортованому вигляді.
АтрибутАтрибут під функцією "Агрегат" не може бути в пункті Group By.Атрибут під сукупністю може бути у порядку за пунктом.
ЗемляВиконано на підставі подібності серед значень атрибутів.Здійснено на підставі порядку зростання і спадання.

Визначення групи за пунктом

Агреговані функції, такі як avg, min, max, sum, count, застосовуються до одного набору кортежів. У випадку, якщо ви хочете застосувати агрегатні функції до групи множини кортежів, то для цього маємо пропозицію Group by. Групувати за групами пропозицій кортежі, які мають однакове значення атрибута.

Є одне, що потрібно пам'ятати про пропозицію Group By, переконайтеся, що атрибут під заголовком Group By повинен з'являтися у пропозиції SELECT, але не під загальною функцією . Якщо пропозиція Group By містить атрибут, який не знаходиться під статтею SELECT, або якщо він знаходиться під статтею SELECT, але під агрегованою функцією, то запит стає помилковим. Отже, можна сказати, що пропозиція Group By завжди використовується у співпраці з пропозицією SELECT.

Візьмемо приклад, щоб зрозуміти статтю Group By.

SELECT Відділ _ID, avg (зарплата) як avg_salary від групи вчителів за відділом_ID.

Можна бачити, що спочатку формується проміжний результат, який згрупував відділи.

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

Визначення порядку за пунктом

Пункт Order By використовується для відображення даних, отриманих за запитом, в сортованому порядку. Подібно до пункту Group By, пропозиція Order By також використовується у співпраці з пропозицією SELECT. Якщо ви не згадуєте порядок сортування, пропозиція Order By сортує дані у порядку зростання. Ви можете вказати висхідний порядок, як у порядку зростання і спадання, як низ .

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

Виберіть Department_ID, зарплату від вчителя за наказом Department_Id asc, Зарплата desc.

Ви можете побачити, що спочатку він організовує ID-відділу у порядку зростання, а потім організовує заробітну плату в одному відділі в порядку убування.

Ключові відмінності між групою і порядком

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

Висновок:

Якщо ви хочете сформувати групу з набору кортежів, то вам слід скористатися пунктом Group By. У випадку, якщо ви хочете організувати дані одного стовпця або більше, ніж один стовпець в наборі кортежів у порядку зростання або зменшення, слід використовувати пункт Order By.

Top