Oppsummering: i denne opplæringen vil du lære hvordan å bruke MySQL GROUP BY
for å gruppere rader i undergrupper basert på verdier på kolonner eller uttrykk.
Introduksjon til MySQL GRUPPE AV punkt
GROUP BY
klausulen grupper et sett med rader i et sett av sammendrag rader av verdier i kolonner eller uttrykk. GROUP BY
klausulen returnerer én rad for hver gruppe. Med andre ord, det reduserer antall rader i resultatsettet.,
Du ofte bruker GROUP BY
klausulen med samlede funksjoner som SUM
, AVG
, MAX
, MIN
, og COUNT
. Den samlede funksjonen som vises i SELECT
klausulen gir informasjon om hver gruppe.
GROUP BY
klausulen er et valgfritt punkt på SELECT
uttalelse., Følgende illustrerer GROUP BY
klausulen syntaks:
GROUP BY
klausulen må vises etter de FROM
og WHERE
klausuler. Følgende GROUP BY
søkeord er en kommaseparert liste med kolonner eller uttrykk som du ønsker å bruke som kriterier for å gruppere rader.,
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) Enkel MySQL GRUPPE VED eksempel
La oss ta en titt på orders
tabellen i eksempel databasen.,
Tenk deg at du ønsker å gruppere verdiene av bestillingens status i undergrupper, kan du bruke GROUP BY
klausulen med status
kolonne som følgende spørring:
Code language: SQL (Structured Query Language) (sql)
Prøv Det Ut
Som du kan se, GROUP BY
klausulen returnerer unike forekomster av status
verdier., Det virker som DISTINCT
operatør som vist i følgende spørring:
Code language: SQL (Structured Query Language) (sql)
Prøv Det Ut
B) ved Hjelp av MySQL GRUPPE AV med samlede funksjoner
Den samlede funksjoner tillate deg å utføre beregningen av et sett med rader og gå tilbake til en enkelt verdi. GROUP BY
klausulen er ofte brukt sammen med en samlet funksjon for å utføre beregningen og returnerer én verdi for hver undergruppe.,
For eksempel, hvis du ønsker å vite antall bestillinger i hver enkelt status, kan du bruke COUNT
funksjon GROUP BY
klausulen som følger:
Code language: SQL (Structured Query Language) (sql)
Prøv Det Ut
Se følgende orders
og orderdetails
tabell.,
for Å få det totale beløpet for alle bestillinger av status, du blir med i en orders
tabell med orderdetails
tabell og bruk SUM
funksjon for å beregne den totale mengden. Se følgende spørring:
Code language: SQL (Structured Query Language) (sql)
Prøv Det Ut
på samme måte, følgende spørring returnerer for tall og den totale mengden av hver bestilling.,
Code language: SQL (Structured Query Language) (sql)
Prøv Det Ut
C) MySQL GRUPPE AV med uttrykket eksempel
I tillegg til kolonner, kan du gruppere rader av uttrykk. Følgende spørring blir det totale salget for hvert år.
Prøv Det Ut
I dette eksempelet har vi brukt YEAR
funksjon for å trekke ut året data fra ordren dato ( orderDate
)., Vi inkluderte bare bestillinger med shipped
status i det totale salget. Vær oppmerksom på at uttrykk som vises i SELECT
klausulen må være den samme som i den GROUP BY
klausulen.
D) ved Bruk av MySQL GRUPPE AV med å HA klausul eksempel
for Å filtrere grupper som returneres av GROUP BY
klausulen, du bruker en HAVING
klausulen. Følgende spørring bruker HAVING
klausulen til å velge det totale salget av årene etter 2003.,
Code language: SQL (Structured Query Language) (sql)
Prøv Det Ut
GRUPPE AV punkt: MySQL vs. standard SQL
Standard SQL tillater deg ikke å bruke et alias i GROUP BY
klausulen, imidlertid, MySQL støtter dette.
For eksempel, følgende spørring ekstrakter år fra ordren dato. Det første bruker year
som et alias av uttrykket YEAR(orderDate)
og deretter bruker year
alias i GROUP BY
klausulen., Dette spørsmålet er ikke gyldig i standard SQL.
Prøv Det Ut
MySQL gir deg også mulighet til å sortere grupper i stigende eller synkende bestillinger mens standard SQL ikke. Standard ordre er stigende., For eksempel, hvis du ønsker å få antall bestillinger av status og sortere status i synkende rekkefølge, kan du bruke GROUP BY
klausulen med DESC
som følgende spørring:
Code language: SQL (Structured Query Language) (sql)
Prøv Det Ut
legg Merke til at vi brukte DESC
i GROUP BY
klausulen for å sortere status
i synkende rekkefølge., Vi kan også angi eksplisitt ASC
i GROUP BY
klausulen for å sortere grupper av status i stigende rekkefølge.
I denne opplæringen, har vi vist deg hvordan du bruker MySQL GROUP BY
klausulen for å gruppere rader i undergrupper basert på verdier på kolonner eller uttrykk.
- Var denne opplæringen nyttig?
- YesNo