Różnica między grupowaniem według i sortowaniem według w SQL

Autor: Laura McKinney
Data Utworzenia: 1 Kwiecień 2021
Data Aktualizacji: 14 Móc 2024
Anonim
Różnica między grupowaniem według i sortowaniem według w SQL - Technologia
Różnica między grupowaniem według i sortowaniem według w SQL - Technologia

Zawartość


SQL pozwala na uporządkowanie danych uzyskanych przez zapytanie. Mamy dwie klauzule do porządkowania danych uzyskanych z zapytania, które są klauzulami Grupuj według i Sortuj według. Punktem odróżniającym klauzule Grupuj według i Sortuj według jest to Grupuj według klauzula jest używana, gdy chcemy zastosować funkcję agregującą do więcej niż jednego zestawu krotek i Zamów przez klauzula jest używana, gdy chcemy posortować dane uzyskane przez zapytanie. Omówmy pewne różnice między klauzulą ​​Grupuj według a Klauzulą ​​sortuj według za pomocą tabeli porównawczej pokazanej poniżej.

  1. Wykres porównania
  2. Definicja
  3. Kluczowe różnice
  4. Wniosek

Wykres porównania

Podstawa do porównaniaGrupuj wedługZamów przez
PodstawowyGroup By służy do utworzenia grupy zestawu krotek.Opcja Sortuj według służy do uporządkowania danych uzyskanych w wyniku zapytania w formie posortowanej.
Atrybut Atrybut w ramach funkcji agregującej nie może znajdować się w klauzuli Group By.Atrybut zbiorczy może być w kolejności według klauzuli.
ZiemiaSporządzono na podstawie podobieństwa między wartościami atrybutów.Sporządzono na podstawie porządku rosnącego i malejącego.

Definicja grupy według klauzuli

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 dla tego klauzulę Grupuj według. Grupuj według klauzul grupuje krotki, które mają tę samą wartość atrybutu.


Jest jedna rzecz Zapamiętaj o klauzuli Group By upewnij się, że atrybut pod Grupuj według klauzula musi pojawić się w WYBIERZ klauzula, ale nie pod funkcja agregująca. Jeśli klauzula Group By zawiera atrybut, który nie jest objęty klauzulą ​​SELECT lub jeśli jest objęty klauzulą ​​SELECT, ale podlega funkcji agregującej, wówczas zapytanie staje się błędne. Dlatego możemy powiedzieć, że klauzula Group By jest zawsze używana we współpracy z klauzulą ​​SELECT.

Weźmy przykład, aby zrozumieć klauzulę Group By.

WYBIERZ Dział _ID, śr. (Wynagrodzenie) jako śr. Wynagrodzenie od Nauczyciela według działu.


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

Następnie funkcja agregująca śr. Jest stosowana do każdej grupy działów, a wynik pokazano poniżej.

Definicja zamówienia według klauzuli

Klauzula Sortuj według służy do wyświetlania danych uzyskanych przez zapytanie w posortowanej kolejności. Podobnie jak klauzula Group By, klauzula Sortuj według jest również używana we współpracy z klauzulą ​​SELECT. Jeśli nie wspomnisz o kolejności sortowania, klauzula Sortuj według sortuje dane w kolejności rosnącej. Możesz określić porządek rosnący jako asc i kolejność malejąca jak opis.

Pozwól nam zrozumieć działanie klauzuli Order By na podstawie następującego przykładu. Mamy tabelę Nauczyciela, a ja zastosuję sortowanie do dwóch kolumn Department_Id i Wynagrodzenie tabeli Nauczyciela.

Wybierz Department_ID, Wynagrodzenie Od Nauczyciela Sortuj według Department_Id asc, Salary desc.

Widać to najpierw, porządkuje Departament _ID w porządku rosnącym, a następnie układa pensje w tym samym dziale w kolejności malejącej.

  1. Klauzula Grupuj według grupuje zestaw krotek w relacji, które są objęte klauzulą ​​SELECT. Z drugiej strony klauzula Sortuj według sortuje wynik zapytania w porządku rosnącym lub malejącym.
  2. Atrybut funkcji agregującej nie może znajdować się w klauzuli Grupuj według, natomiast atrybut funkcji agregującej może znajdować się w klauzuli Sortuj według.
  3. Grupowanie krotek odbywa się na podstawie podobieństwa między wartościami atrybutów krotek. Z drugiej strony, porządkowanie lub sortowanie odbywa się na podstawie kolejności rosnącej lub malejącej.

Wniosek:

Jeśli chcesz utworzyć grupę zestawu krotek, musisz użyć klauzuli Group By. Jeśli chcesz uporządkować dane jednej kolumny lub więcej niż jednej kolumny w zestawie krotek w kolejności rosnącej lub malejącej, należy użyć klauzuli Order By.