Kiedy generalnie używasz których? Przykłady są bardzo mile widziane!
Odnoszę się więc do MySql, ale nie mogę sobie wyobrazić innej koncepcji na innym DBMS
ORDER BY zmienia kolejność zwracanych produktów.
GROUP BY agreguje rekordy według określonych kolumn, co umożliwia wykonywanie funkcji agregacji na kolumnach niezgrupowanych (takich jak SUMA, LICZNIK, ŚREDNIA itp.).
ORDER BY zmienia kolejność zwracanych produktów.
GROUP BY agreguje rekordy według określonych kolumn, co umożliwia wykonywanie funkcji agregacji na kolumnach niezgrupowanych (takich jak SUMA, LICZNIK, ŚREDNIA itp.).
źródło
age
kolumnę z Petersem w różnym wieku i zapytaniem SELECT NAME, AGE FROM TABLE GROUP BY NAME?ORDER BY: sortuj dane w kolejności rosnącej lub malejącej.
Rozważ tabelę CUSTOMERS :
Oto przykład, który posortowałby wynik w kolejności rosnącej według NAZWA:
Dałoby to następujący wynik:
GROUP BY: uporządkuj identyczne dane w grupy.
Teraz tabela CUSTOMERS zawiera następujące rekordy ze zduplikowanymi nazwami:
jeśli chcesz zgrupować identyczne nazwy w jedną nazwę, zapytanie GROUP BY wyglądałoby następująco:
Dałoby to następujący wynik: (dla identycznych nazw wybierze ostatnią i ostatecznie posortuje kolumnę w porządku rosnącym)
jak można wywnioskować, że nie jest to przydatne bez funkcji SQL, takich jak suma, średnia itp.
zapoznaj się więc z tą definicją, aby zrozumieć, jak należy używać funkcji GROUP BY:
Teraz, jeśli chcesz poznać całkowitą kwotę wynagrodzenia każdego klienta (imię i nazwisko), zapytanie GROUP BY wyglądałoby następująco:
Dałoby to następujący wynik: (suma wynagrodzeń o identycznych nazwiskach i sortowanie kolumny NAZWA po usunięciu identycznych nazwisk)
źródło
Różnica jest dokładnie tym, co sugeruje nazwa: grupa wykonuje operację grupowania i porządek według sortowania.
Jeśli to zrobisz
SELECT * FROM Customers ORDER BY Name
, otrzymasz listę wyników posortowaną według nazw klientów.Jeśli tak
SELECT IsActive, COUNT(*) FROM Customers GROUP BY IsActive
, otrzymasz liczbę aktywnych i nieaktywnych klientów. Grupa według zagregowanych wyników na podstawie określonego pola.źródło
Mają zupełnie inne znaczenie i wcale nie są ze sobą powiązane.
ORDER BY umożliwia sortowanie zestawu wyników według różnych kryteriów, takich jak najpierw sortowanie według nazwy od z, a następnie sortowanie według ceny od najwyższej do najniższej.
(ZAMÓW WEDŁUG nazwy, cena DESC)
GROUP BY umożliwia pobranie zestawu wyników, pogrupowanie go w logiczne grupy, a następnie uruchomienie zagregowanych zapytań dotyczących tych grup. Można na przykład wybrać wszystkich pracowników, pogrupować ich według lokalizacji miejsca pracy i obliczyć średnie wynagrodzenie wszystkich pracowników w każdym miejscu pracy.
źródło
Proste,
ORDER BY
porządkuje dane iGROUP BY
grupy lub łączy dane.ORDER BY
porządkuje zestaw wyników zgodnie ze wspomnianym polem, domyślnie w kolejności rosnącej.Załóżmy, że uruchamiasz zapytanie
ORDER BY (student_roll_number)
, ponieważ pokaże ono wynik w rosnącej kolejności numerów rolek uczniów. Tutajstudent_roll_number
wpis może nastąpić więcej niż raz.W
GROUP BY
przypadku, gdy używamy tego z funkcjami agregującymi i grupuje dane zgodnie z funkcją agregującą, a otrzymujemy wynik. Tutaj, jeśli nasze zapytanie maSUM (marks)
razem ze sobąGROUP BY (student_first_name)
, pokaże sumę ocen uczniów należących do każdej grupy (gdzie wszyscy członkowie grupy będą mieli to samo imię).źródło
GROUP BY służy do grupowania wierszy w selekcji, zwykle podczas agregowania wierszy (np. Obliczanie sum, średnich itp. Dla zestawu wierszy o tych samych wartościach dla niektórych pól).
ORDER BY służy do porządkowania wierszy wynikających z instrukcji select.
źródło
Kilka dobrych przykładów. Podobnie jak dodawanie własnego z arkusza internetowego, który daje dobre jasne przykłady, a także pozwala na wykonanie własnego SQL.
Kolejność SQL według
SQL Group By
źródło
ORDER BY
pokazuje pole w porządku rosnącym lub malejącym. Podczas gdyGROUP BY
pokazuje te same nazwy pól, identyfikatory itp. W tylko jednym wyjściu.źródło
źródło
Należy zauważyć, że
GROUP BY
nie zawsze jest to konieczne, ponieważ (przynajmniej w PostgreSQL i prawdopodobnie w innych wariantach SQL) możesz używaćORDER BY
z listą i nadal możesz używaćASC
lubDESC
na kolumnę ...źródło