logo

GROUP BY проти ORDER BY

У цій статті пояснюється повний огляд речень GROUP BY і ORDER BY. Вони в основному використовуються для організації даних, отриманих за допомогою запитів SQL. Різниця між цими реченнями є одним із найпоширеніших місць, де можна застрягти під час навчання SQL . Основна відмінність між ними полягає в тому пропозиція GROUP BY застосовна, коли ми хочемо використовувати агрегатні функції для більш ніж одного набору рядків. Речення ORDER BY застосовне, коли ми хочемо отримати дані, отримані за допомогою запиту, у порядку сортування . Перш ніж робити порівняння, ми спочатку дізнаємось про ці пропозиції SQL.

GROUP BY проти ORDER BY

ORDER BY пункт

Речення ORDER BY використовується в запитах SQL для сортування даних, повернутих запитом, у порядку зростання або спадання. Якщо ми не вказуємо порядок сортування, за замовчуванням підсумковий результат сортується в порядку зростання. Речення ORDER BY, як і речення GROUP BY, можна використовувати в поєднанні з оператором SELECT. ASC позначає порядок зростання, а DESC позначає порядок спадання.

Нижче наведено синтаксис використання речення ORDER BY в операторі SQL:

мультиплексор два до одного
 SELECT expressions FROM tables [WHERE conditions] ORDER BY expression [ ASC | DESC ]; 

Давайте зрозуміємо, як працює речення ORDER BY за допомогою наступного прикладу. Припустимо, у нас є стіл розробник який містить такі дані:

GROUP BY проти ORDER BY

Ми бачимо, що ці результати не відображаються організовано. Припустімо, ми хочемо впорядкувати результати в порядку зростання або спадання на основі колонка стану . У цьому випадку нам знадобиться команда ORDER BY, щоб отримати бажаний результат. Ми можемо зробити це, виконавши таку команду:

 mysql> SELECT D_name, D_state, D_salary FROM developers ORDER BY D_state ASC; 

Ось результат, де ми отримаємо бажані результати:

GROUP BY проти ORDER BY

Речення GROUP BY

Речення GROUP BY використовується в запитах SQL для організації даних, які мають однакові значення атрибутів. Зазвичай ми використовуємо його з оператором SELECT. Завжди пам’ятайте, що ми маємо розмістити речення GROUP BY після речення WHERE. Крім того, він розташовується перед пропозицією ORDER BY.

Ми часто можемо використовувати це положення разом із агрегатними функціями, такими як SUM, AVG, MIN, MAX і COUNT, для створення зведених звітів із бази даних. Важливо пам’ятати, що атрибут у цьому пункті має з’являтися в пункті SELECT, а не під агрегатною функцією. Якщо ми це зробимо, запит буде неправильним. У результаті речення GROUP BY завжди використовується разом із реченням SELECT. Запит для пропозиції GROUP BY є згрупованим запитом, і він повертає один рядок для кожного згрупованого об’єкта.

фільтрація python

Нижче наведено синтаксис використання пропозиції GROUP BY в інструкції SQL:

 SELECT column_name, function(column_name) FROM table_name WHERE condition GROUP BY column_name; 

Давайте зрозуміємо, як працює речення GROUP BY на прикладі. Тут ми продемонструємо це за тією ж таблицею.

Припустимо, ми хочемо знати середня зарплата розробника в конкретному штаті і організувати результати в порядку спадання на основі стовпця стану. У цьому випадку нам знадобляться і команди GROUP BY, і ORDER BY, щоб отримати бажаний результат. Ми можемо зробити це, виконавши таку команду:

 mysql> SELECT D_state, avg(D_salary) AS salary FROM developers GROUP BY D_state ORDER BY D_state DESC; 

Цей запит спочатку сформував проміжний результат, який згрупував стан. Далі, СЕР функція виконується для кожної групи станів, потім сортуємо результат у порядку спадання, і, нарешті, ми отримаємо бажані результати, як показано нижче:

GROUP BY проти ORDER BY

Основні відмінності між GROUP BY і ORDER BY

Нижче наведено основні відмінності між пунктами Group By і Order By:

  • Речення Group By використовується для групування даних на основі однакового значення в певному стовпці. Речення ORDER BY, з іншого боку, сортує результат і показує його в порядку зростання або спадання.
  • Обов’язково використовувати агрегатну функцію для використання Group By. З іншого боку, необов’язково використовувати агрегатну функцію для використання Order By.
  • Атрибут не може бути під інструкцією GROUP BY під агрегатною функцією, тоді як атрибут може бути під оператором ORDER BY під агрегатною функцією.
  • Речення Group By керує представленням кортежів, що означає, що групування виконується на основі подібності між значеннями атрибутів рядка. На відміну від цього, пропозиція ORDER BY керує представленням стовпців, що означає, що впорядкування або сортування виконується на основі значень атрибутів стовпця в порядку зростання або спадання.
  • GROUP BY завжди розміщується після пропозиції WHERE, але перед оператором ORDER BY. З іншого боку, ORDER BY завжди використовується після оператора GROUP BY.

Порівняльна таблиця GROUP BY проти ORDER BY

Наведена нижче порівняльна таблиця швидко пояснює їхні основні відмінності:

SN ГРУПУВАТИ ЗА СОРТУВАТИ ЗА
1. Він використовується для групування рядків, які мають однакові значення. Він сортує набір результатів у порядку зростання або спадання.
2. Це може бути дозволено в операторі CREATE VIEW. Це заборонено в операторі CREATE VIEW
3. Він керує представленням рядків. Він керує представленням стовпців.
4. Атрибут не може входити до агрегатної функції під оператором GROUP BY. Атрибут може бути під агрегатною функцією в операторі ORDER BY.
5. Він завжди використовується перед пропозицією ORDER BY в операторі SELECT. Він завжди використовується після пропозиції GROUP BY в операторі SELECT.
6. Обов’язковим є використання агрегатних функцій у GROUP BY. Використовувати агрегатні функції в ORDER BY не обов’язково.
7. Тут групування здійснюється на основі подібності між значеннями атрибутів рядка. Тут набір результатів сортується на основі значень атрибутів стовпця в порядку зростання або спадання.

Висновок

У цій статті порівнюються пропозиції GROUP BY і ORDER BY. Обидва пункти є надзвичайно корисними функціями бази даних SQL. Коли ми хочемо сформувати групу рядків, ми використовуємо речення GROUP BY. Якщо ми хочемо впорядкувати дані в порядку зростання або спадання на основі певного стовпця, ми використовуємо речення ORDER BY. Вони не мають жодного зв’язку, оскільки обидва використовуються для двох різних цілей. Однак ми можемо комбінувати їх для певних цілей або використовувати їх окремо залежно від обставин. Ми можемо використовувати ці пропозиції лише з інструкцією SELECT.

Жасмин Девіс в дитинстві