Rozumiem sens GROUP BY x
Ale jak
GROUP BY x, y
działa i co to znaczy?
sql
group-by
multiple-columns
l - '' '' ---------- '' '' '' '
źródło
źródło
Odpowiedzi:
Group By X
oznacza umieszczenie wszystkich z tą samą wartością X w jednej grupie .Group By X, Y
oznacza umieszczenie wszystkich tych samych wartości dla X i Y w jednej grupie .Aby zilustrować to na przykładzie, załóżmy, że mamy następującą tabelę dotyczącą tego, kto studiuje dany przedmiot na uniwersytecie:
Gdy używasz tylko
group by
w kolumnie tematu; mówić:Otrzymasz coś takiego:
... ponieważ jest 5 pozycji dla ITB001 i 2 dla MKB114
Gdybyśmy byli w
group by
dwóch kolumnach:otrzymalibyśmy to:
Wynika to z tego, że kiedy grupujemy według dwóch kolumn, mówi się: „Grupuj je, aby wszystkie osoby z tym samym przedmiotem i semestrem znajdowały się w tej samej grupie, a następnie oblicz wszystkie funkcje agregujące (liczba, suma, średnia itp.). ) dla każdej z tych grup ” . W tym przykładzie pokazuje to fakt, że kiedy je policzymy, trzy osoby wykonują ITB001 w semestrze 1, a dwie robią to w semestrze 2. Obie osoby wykonujące MKB114 są w semestrze 1, więc nie ma wiersz dla semestru 2 (brak danych pasuje do grupy „MKB114, semestr 2”)
Mam nadzieję, że to ma sens.
źródło
GROUP BY A,B
to samo coGROUP BY B,A
?GROUP BY a, b
aGROUP BY a AND b
ponieważ druga zawiera tylko zgrupowane elementy o dokładnie takiej samej treści i bez „podgrup”. W takim przypadku wynik będzie taki sam jak pierwszy.GROUP BY
Klauzula jest stosowana w połączeniu z funkcjami kruszywa do grupy wynikiem skonfigurowany przez jedną lub więcej kolumn. na przykład:Zapamiętaj to zamówienie:
Możesz użyć ich wszystkich, jeśli używasz funkcji agregujących, i to jest kolejność, w jakiej muszą być ustawione, w przeciwnym razie możesz otrzymać błąd.
Funkcje agregujące to:
źródło