Zalecane, 2025

Wybór Redakcji

Różnica między grupami według kolejności i kolejności w SQL

SQL umożliwia uporządkowanie danych uzyskanych przez zapytanie. Mamy dwie klauzule organizowania danych uzyskanych z zapytania, które są klauzulami Group By i Order By. Punktem odróżniającym klauzulę Grupuj od Porządku jest to, że klauzula Grupuj według jest używana, gdy chcemy zastosować funkcję agregującą do więcej niż jednego zestawu krotek, a klauzula " Zlecenie " jest używana, gdy chcemy posortować dane uzyskane przez zapytanie. Omówmy niektóre różnice między klauzulami Group By i Order By za pomocą poniższej tabeli porównawczej.

Wykres porównania

Podstawa do porównaniaGrupuj wedługZamów przez
PodstawowyGroup By służy do utworzenia grupy zestawu krotek.Sortuj według służy do uporządkowania danych uzyskanych w wyniku zapytania w postaci posortowanej.
AtrybutAtrybut pod funkcją Aggregate nie może być w klauzuli Group By.Atrybut zagregowany może być w porządku według kolejności.
ZiemiaSporządzono na podstawie podobieństwa między wartościami atrybutów.Zrobione na podstawie kolejności rosnącej i malejącej kolejności.

Definicja grupy klauzul

Funkcje agregujące takie jak avg, min, max, sum, count są stosowane do pojedynczego zestawu krotek. W przypadku, jeśli chcesz zastosować funkcje agregujące do grupy zestawu krotek, mamy do tego klauzulę Group by. Grupuj według klauzul grupy krotek, które mają tę samą wartość atrybutu.

Należy pamiętać o klauzuli Group By, aby upewnić się, że atrybut w klauzuli Group By musi pojawić się w klauzuli SELECT, ale nie w funkcji zagregowanej . Jeśli klauzula Group By zawiera atrybut, który nie znajduje się w klauzuli SELECT lub jeśli jest pod klauzulą ​​SELECT, ale pod funkcją agregującą, zapytanie staje się błędne. Dlatego możemy powiedzieć, że klauzula Group By zawsze jest używana we współpracy z klauzulą ​​SELECT.

Zróbmy przykład, aby zrozumieć klauzulę Group By.

SELECT Dział _ID, avg (Wynagrodzenie) jako avg_salary z Teacher Group By Department_ID.

Widać, że początkowo powstaje wynik pośredni, który zgrupował działy.

Następnie łączna funkcja avg jest stosowana do każdej grupy działów, a wynik jest pokazany poniżej.

Definicja kolejności klauzuli

Klauzula "zamówienie" służy do wyświetlania danych uzyskanych przez zapytanie w posortowanej kolejności. Podobnie jak w przypadku klauzuli Group By, klauzula Order By jest również używana we współpracy z klauzulą ​​SELECT. Jeśli nie wspomnisz o kolejności sortowania, polecenie Sortuj według sortuje dane w porządku rosnącym. Możesz określić kolejność rosnącą jako asc i kolejność malejącą jako desc .

Rozumiemy działanie klauzuli Order By za pomocą poniższego przykładu. Mamy tabelę Nauczycieli i zastosuję sortowanie do dwóch kolumn Department_Id i Salary, tabeli Teacher.

Wybierz Department_ID, Salary From Teacher Order By Department_Id asc, Salary desc.

Widać to najpierw, porządkuje Departament _ID w porządku rosnącym, a następnie aranżuje wynagrodzenia w tym samym dziale w malejącej kolejności.

Kluczowe różnice między grupami według porządku

  1. Grupuj klauzulą ​​grupy zestaw krotek w relacji, które są w klauzuli SELECT. Z drugiej strony klauzula "Sortuj według" sortuje wynik zapytania w porządku rosnącym lub malejącym.
  2. Atrybut pod funkcją agregującą nie może być w klauzuli Group By, podczas gdy atrybut w funkcji zagregowanej może znajdować się w klauzuli Order By.
  3. Grupowanie krotek odbywa się na podstawie podobieństwa wartości atrybutów krotek. Z drugiej strony, porządkowanie lub sortowanie odbywa się na podstawie kolejności rosnącej lub malejącej kolejności.

Wniosek:

Jeśli chcesz utworzyć grupę zestawów krotek, musisz użyć klauzuli Group By. Jeśli chcesz uporządkować dane pojedynczej kolumny lub więcej niż jednej kolumny w zestawie krotek w porządku rosnącym lub malejącym, należy użyć klauzuli "Zlecenie".

Top