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 обозначава възходящ ред, докато ОПИСАНИЕ обозначава низходящ ред.

Следва синтаксисът за използване на клаузата ORDER BY в SQL израз:

... в java
 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 се използва в SQL заявки за организиране на данни, които имат еднакви стойности на атрибути. Обикновено го използваме с израза SELECT. Винаги трябва да помним, че трябва да поставим клаузата GROUP BY след клаузата WHERE. Освен това, той се поставя преди клаузата ORDER BY.

Често можем да използваме тази клауза в сътрудничество с агрегатни функции като SUM, AVG, MIN, MAX и COUNT, за да създадем обобщени отчети от базата данни. Важно е да запомните, че атрибутът в тази клауза трябва да се появи в клаузата SELECT, а не под агрегатна функция. Ако го направим, заявката ще бъде неправилна. В резултат на това клаузата GROUP BY винаги се използва заедно с клаузата SELECT. Заявката за клаузата GROUP BY е групирана заявка и връща един ред за всеки групиран обект.

състав на връзката

Следва синтаксисът за използване на клауза 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 винаги се поставя след клаузата 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.

връщане на масиви в java