Różnica między grupowaniem według i sortowaniem według w SQL
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.
- Wykres porównania
- Definicja
- Kluczowe różnice
- Wniosek
Wykres porównania
Podstawa do porównania | Grupuj według | Zamów przez |
---|---|---|
Podstawowy | Group 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. |
Ziemia | Sporzą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.- 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.
- 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.
- 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.