MySQL GRUPPE AF

Resumé: i denne tutorial vil du lære at bruge MySQL GROUP BY for at gruppere rækker i undergrupper baseret på værdier i kolonner eller udtryk.

Introduktion til MYS .l-gruppe efter klausul

GROUP BY klausul grupperer et sæt rækker i et sæt sammenfattende rækker efter værdier af kolonner eller udtryk. GROUP BY klausul returnerer en række for hver gruppe. Med andre ord reducerer det antallet af rækker i resultatsættet.,

Du ofte bruger GROUP BY klausul med samlede funktioner som f.eks. SUM AVG MAX MIN og COUNT. Den samlede funktion, der vises i SELECT klausul indeholder oplysninger om hver gruppe.

GROUP BY klausul er en valgfri bestemmelse af SELECT erklæring., Følgende illustrerer GROUP BY klausul syntax:

GROUP BY klausul skal vises efter FROM og WHERE klausuler. Efter GROUP BY søgeord er en liste over kommaseparerede kolonner eller udtryk, som du vil bruge som kriterier for at gruppere rækker.,

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 MYS .l-gruppe ved eksempel

lad os se på orders tabel i eksempeldatabasen.,

Antag, at du ønsker at gruppere værdierne for ordre status i undergrupper, skal du bruge GROUP BY klausul med status kolonne som den følgende forespørgsel:

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

Prøv

Som du kan se, GROUP BY klausul returnerer unikke forekomster af status værdier., Det virker som DISTINCT operatør, som vist i følgende query:

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

Prøv

B) ved Hjælp af MySQL GRUPPE AF med samlede funktioner

Den samlede funktioner giver dig mulighed for at udføre beregningen af et sæt rækker og returnere en enkelt værdi. GROUP BY – klausulen bruges ofte med en samlet funktion til at udføre beregning og returnere en enkelt værdi for hver undergruppe.,

For eksempel, hvis du ønsker at vide antallet af ordrer i hver enkelt status, kan du bruge COUNT funktion med GROUP BY klausul som følger:

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

Prøv

Se følgende: orders og orderdetails tabel.,

for At få det samlede beløb for alle ordrer med status, du tilmelder dig orders tabel med orderdetails tabel, og brug SUM funktion til at beregne det samlede beløb. Se følgende forespørgsel:

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

Prøv

på samme måde, efter forespørgsel returnerer rækkefølgen af numre og den samlede mængde af hver enkelt ordre.,

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

Prøv

C) MySQL GRUPPE AF med udtryk eksempel

ud over kolonnerne, kan du gruppere rækker af udtryk. Følgende forespørgsel får det samlede salg for hvert år.

Prøv

I dette eksempel har vi brugt den YEAR funktion til at udtrække års data fra ordre-dato ( orderDate)., Vi inkluderede kun ordrer med shipped status i det samlede salg. Bemærk, at udtrykket, der vises i SELECT klausul skal være den samme som den i GROUP BY klausul.

D) ved Hjælp af MySQL-GRUPPEN VED med at HAVE klausul eksempel

hvis du vil filtrere de grupper, der returneres af GROUP BY klausul, skal du bruge en HAVING klausul. Følgende forespørgsel bruger HAVING klausulen til at vælge årets samlede salg efter 2003.,

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

Prøv

Den GRUPPE AF punkt: MySQL vs. standard SQL

Standard SQL giver dig ikke mulighed for at bruge et alias i GROUP BY klausul, men MySQL understøtter dette.

for eksempel udtrækker følgende forespørgsel året fra ordredatoen. Det første bruger year som et alias for den udtryk YEAR(orderDate) og så bruger year alias i GROUP BY klausul., Denne forespørgsel er ikke gyldig i standard S .l.

Prøv

MySQL giver dig også mulighed for at sortere de grupper, der i stigende eller faldende ordrer, mens standard-SQL ikke. Standardordren er stigende., For eksempel, hvis du ønsker at få antallet af ordrer med status og sortere status i faldende rækkefølge, kan du bruge GROUP BY klausul med DESC som følgende forespørgsel:

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

Prøv

Bemærk, at vi brugte DESC GROUP BY klausul at sortere status i faldende rækkefølge., Vi kunne også specificere eksplicit ASC i GROUP BY klausul for at sortere grupperne efter status i stigende rækkefølge.

i denne vejledning har vi vist dig, hvordan du bruger Mys .l GROUP BY – klausulen til at gruppere rækker i undergrupper baseret på værdier af kolonner eller udtryk.

  • var denne vejledning nyttig?
  • YesNo

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

Videre til værktøjslinje