MySQL GROUP by (Polski)

Podsumowanie: w tym samouczku dowiesz się, jak używać MySQLGROUP BY do grupowania wierszy w podgrupy na podstawie wartości kolumn lub wyrażeń.

Wprowadzenie do grupy MySQL za pomocą klauzuli

klauzulaGROUP BY grupuje zbiór wierszy w zestaw wierszy podsumowujących według wartości kolumn lub wyrażeń. KlauzulaGROUP BY zwraca jeden wiersz dla każdej grupy. Innymi słowy, zmniejsza liczbę wierszy w zestawie wyników.,

często używasz klauzuli GROUP BY Z FUNKCJAMI zbiorczymi, takimi jak SUM, AVG, MAX, MIN oraz COUNT. Funkcja agregująca, która pojawia się w klauzuli SELECT dostarcza informacji o każdej grupie.

GROUP BY klauzula jest opcjonalną klauzuląSELECT., Poniżej przedstawiono składnię klauzuli GROUP BY:

klauzula GROUP BY musi pojawić się po FROM I WHERE klauzule. Poniżej słów kluczowychGROUP BY znajduje się lista kolumn lub wyrażeń oddzielonych przecinkami, których chcesz użyć jako kryteriów do grupowania wierszy.,

MySQL evaluates the GROUP BY clause after the FROM, WHERE and SELECT clauses and before the HAVING , ORDER BY and LIMIT clauses:

MySQL GROUP BY examples

Let’s take some example of using the GROUP BY clause.,

A) prosta Grupa MySQL na przykładzie

przyjrzyjmy się tabeliorders w przykładowej bazie danych.,

Załóżmy, że chcesz grupować wartości statusu zamówienia w podgrupy, używasz klauzuli GROUP BY z status kolumna jako następujące zapytanie:

Code language: SQL (Structured Query Language) (sql)

wypróbuj to

jak widać, klauzula GROUP BY zwraca unikalne wystąpienia status wartości., Działa jak operator DISTINCT jak pokazano w następującym zapytaniu:

Code language: SQL (Structured Query Language) (sql)

wypróbuj to

B) używając grupy MySQL przy użyciu funkcji agregujących

funkcje agregujące pozwalają wykonać obliczenia zestawu wierszy i zwrócić pojedynczą wartość. Klauzula GROUP BY jest często używana z funkcją agregującą do wykonywania obliczeń i zwracania pojedynczej wartości dla każdej podgrupy.,

na przykład, jeśli chcesz poznać liczbę zamówień w każdym stanie, możesz użyć funkcji COUNT z klauzulą GROUP BY w następujący sposób:

Code language: SQL (Structured Query Language) (sql)

wypróbuj ją

zobacz poniższą tabelę orders I orderdetails.,

aby uzyskać całkowitą kwotę wszystkich zamówień według statusu, dołącz do tabeli orders z orderdetails table and use the SUM function to calkowita kwota. Zobacz następujące zapytanie:

Code language: SQL (Structured Query Language) (sql)

wypróbuj je

podobnie, poniższe zapytanie zwraca numery zamówień i całkowitą kwotę każdego zamówienia.,

Code language: SQL (Structured Query Language) (sql)

Wypróbuj

C) Grupa MySQL według wyrażenia przykład

oprócz kolumn można grupować wiersze według wyrażeń. Poniższe zapytanie pobiera całkowitą sprzedaż za każdy rok.

Wypróbuj

w tym przykładzie użyliśmy funkcji YEAR do wyodrębnienia danych roku z daty zamówienia ( orderDate)., Uwzględniliśmy tylko zamówienia ze statusem shipped w całkowitej sprzedaży. Zauważ, że wyrażenie pojawiające się w klauzuli SELECT musi być takie samo jak wyrażenie w klauzuli GROUP BY.

D) używając MySQL GROUP BY with HAVING clause przykład

aby filtrować grupy zwrócone przez GROUP BYklauzula, używasz HAVING klauzula. Poniższe zapytanie wykorzystuje klauzulę HAVING, aby wybrać całkowitą sprzedaż w latach po 2003 roku.,

Code language: SQL (Structured Query Language) (sql)

Wypróbuj

Grupa według klauzuli: MySQL vs.standardowy SQL

standardowy SQL nie pozwala na użycie aliasu w klauzuli GROUP BY, jednak MySQL to obsługuje.

na przykład poniższe zapytanie wyciąga rok z daty zamówienia. Najpierw używayear jako aliasu wyrażeniaYEAR(orderDate), a następnie używa aliasuyear w klauzuliGROUP BY., To zapytanie nie jest poprawne w standardowym SQL.

Wypróbuj

MySQL pozwala również sortować grupy w kolejności rosnącej lub malejącej, podczas gdy standardowy SQL nie. Domyślna kolejność jest rosnąca., Na przykład, jeśli chcesz uzyskać liczbę zamówień według statusu i posortować stan w porządku malejącym, możesz użyć GROUP BY klauzuli DESC jako następującego zapytania:

Code language: SQL (Structured Query Language) (sql)

wypróbuj to

zauważ, że użyliśmy DESC w GROUP BY klauzuli do sortowania status malejąco., Możemy również wyraźnie określić ASCw klauzuli GROUP BY, aby sortować grupy według statusu w kolejności rosnącej.

w tym samouczku pokazaliśmy, jak używać klauzuli MySQL GROUP BY do grupowania wierszy w podgrupy na podstawie wartości kolumn lub wyrażeń.

  • czy ten tutorial był pomocny?
  • YesNo

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Przejdź do paska narzędzi