MySQL GRUPPE AV

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

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

Hopp til verktøylinje