Articles

SQL-GRUPPEN VED og HA Klausul med Eksempler


Hva er SQL Gruppe av Punkt?

GRUPPEN AV punkt er en SQL-kommando som brukes til å gruppere rader som har de samme verdiene. GRUPPEN AV punkt er brukt i SELECT-setning. Alternativt kan den brukes i forbindelse med samlede funksjoner for å produsere sammendrag av rapporter fra databasen.

det er Det det gjør, oppsummering av data fra databasen.

søk som inneholder GRUPPEN AV punkt kalles gruppert spørringer og bare gå tilbake én rad for hver gruppert element.,

SQL-GRUPPEN VED Syntaks

Nå som vi vet hva SQL GRUPPE AV punkt er, la oss se på syntaksen for en grunnleggende gruppe av spørringen.

SELECT statements... GROUP BY column_name1 ;

HER

  • «SELECT-setninger…»er standard SQL VELG kommandoen spørring.
  • «GRUPPE AV column_name1» er det punkt som utfører gruppering basert på column_name1.
  • «» er valgfri; representerer andre kolonne navn når grupperingen er gjort på mer enn én kolonne.
  • «» er valgfri; den brukes til å begrense rader påvirket av GRUPPEN AV klausulen., Det er lignende til WHERE-setningsdel.

Gruppering ved hjelp av en Enkelt Kolonne

for å hjelpe deg å forstå effekten av SQL Gruppe Av punkt, la oss utføre en enkel spørring som returnerer alle kjønn bidrag fra medlemmene bordet.

SELECT `gender` FROM `members` ;


gender

Female


Female


Male


Female


Male


Male


Male


Male


Male


la oss Anta at vi ønsker å få unike verdier for kjønn. Vi kan bruke følgende spørring –

SELECT `gender` FROM `members` GROUP BY `gender`;

Utføring av skriptet ovenfor i MySQL workbench mot Myflixdb gir oss følgende resultater.,


gender

Female


Male


Merk kun to resultatene har blitt returnert. Dette er fordi vi bare har to kjønn typer Mannlige og Kvinnelige. GRUPPEN AV setningen i SQL gruppert alle de «Mannlige» medlemmer sammen og returneres bare en enkelt rad for det. Det gjorde det samme med «Kvinnelige» medlemmer.

Gruppering ved hjelp av flere kolonner

la oss si at vi ønsker å få en liste av filmen category_id og tilsvarende år som de ble utgitt.,

La oss observere resultatet av denne enkel spørring

SELECT `category_id`,`year_released` FROM `movies` ;

category_id year_released
1 2011
2 2008
NULL 2008
NULL 2010
8 2007
6 2007
6 2007
8 2005
NULL 2012
7 1920
8 NULL
8 1920

De ovennevnte resultat har mange duplikater.

La oss utføre det samme søket ved hjelp av gruppen av SQL –

SELECT `category_id`,`year_released` FROM `movies` GROUP BY `category_id`,`year_released`;

Utføring av skriptet ovenfor i MySQL workbench mot myflixdb gir oss følgende resultater er vist nedenfor.

category_id year_released
NULL 2008
NULL 2010
NULL 2012
1 2011
2 2008
6 2007
7 1920
8 1920
8 2005
8 2007

GRUPPEN AV punkt opererer på begge kategori-id og utgivelsesår for å identifisere unike rader i vår eksemplet ovenfor.,

Dersom den kategori-id-en er den samme, men i år lansert er annerledes, deretter en rad behandlet som en unik .Hvis kategori-id og utgivelsesår er den samme for mer enn én rad, så det er ansett som et duplikat og bare én rad er vist.

Gruppering og samlede funksjoner

la oss Anta at vi ønsker total antall menn og kvinner i vår database. Vi kan bruke følgende skript vist nedenfor, for å gjøre det.

SELECT `gender`,COUNT(`membership_number`) FROM `members` GROUP BY `gender`;

Utføring av skriptet ovenfor i MySQL workbench mot myflixdb gir oss følgende resultater.,

gender COUNT('membership_number')
Female 3
Male 5

resultatene som vises nedenfor er gruppert etter hvert unike kjønn verdi lagt og antall grupperte rader er regnet med COUNT samlede funksjonen.

Begrense søket resultat ved hjelp av den etter å HA punkt

Det er ikke alltid at vi vil ønske å utføre grupperinger på alle data i en gitt tabell. Det vil være ganger når vi ønsker å begrense våre resultater til en gitt visse kriterier. I slike tilfeller kan vi bruke å HA paragraf

la oss Anta at vi ønsker å vite alle utgivelsen år for film kategori-id 8., Vi vil bruke følgende skript for å oppnå våre resultater.

SELECT * FROM `movies` GROUP BY `category_id`,`year_released` HAVING `category_id` = 8;

Utføring av skriptet ovenfor i MySQL workbench mot Myflixdb gir oss følgende resultater er vist nedenfor.

movie_id title director year_released category_id
9 Honey mooners John Schultz 2005 8
5 Daddy's Little Girls NULL 2007 8

Merk bare filmer med kategori-id 8 har vært påvirket av vår GRUPPE AV klausulen.

Oppsummering

  • GRUPPEN AV Punkt SQL brukes for å gruppere rader med samme verdier.
  • GRUPPEN AV Punkt er brukt sammen med SQL SELECT-setning.,
  • SELECT-setning som brukes i GRUPPEN AV klausulen kan bare brukes inneholde kolonnenavn, samlede funksjoner, konstanter og uttrykk.
  • SQL å Ha Klausul brukes til å begrense resultatene som returneres av GRUPPEN AV klausulen.
  • MYSQL GRUPPE AV Punkt er brukt for å samle inn data fra flere registre og tilbake rekord satt av én eller flere kolonner.