MySQL Group by Clause and Count Function

MySQL Group by Clause and Count Function
Dataene kan hentes fra MySQL -databasetabellene ved å bruke SELECT -spørringen på forskjellige måter. Generelt brukes gruppen BY-klausulen med SELECT-spørringen for å hente settet med REC-ORDS ved å gruppere en eller flere kolonneverdier. Mange samlede funksjoner av MySQL brukes også med gruppen etter klausul for å lese data fra tabellen, for eksempel Count (), Max (), Min (), AVG (), etc. Bruken av gruppen etter klausul med eller uten telling () -funksjonen har blitt diskutert i denne opplæringen.

Gruppe etter klausul:

Det brukes hovedsakelig for å få sammendraget av tabellens data basert på kolonnen (e) i tabellen. Syntaksen til denne leddet er gitt nedenfor:

Syntaks:
Velg uttalelser ..
Gruppe etter kolonne1 [, kolonne2,…];

SELECT -spørringen vil hente dataene fra tabellene basert på kolonnenavnene som er definert med gruppen etter klausul.

Count () Funksjon:

Denne funksjonen teller det totale antallet poster som er returnert ved å utføre SELECT -spørringen. Den returnerer en stor verdi når en eller flere poster returneres av spørringen. Ellers svinger det på nytt 0. Syntaks for grev () -funksjonen er gitt. Denne funksjonen kan brukes på tre forskjellige måter som er forklart nedenfor:

  1. TELLE(*)
    Det brukes til å telle det totale antallet rader som returneres av SELECT -spørringen ved å telle null, ikke null og duplisere verdier.
  2. Telle (uttrykk)
    Det brukes til å telle det totale antallet rader som returneres av SELECT -spørringen uten å telle nullverdiene.
  3. Teller (distinkt uttrykk)
    Det brukes til å telle det totale antallet rader som returneres av SELECT -spørringen uten å telle nullverdiene og duplikatverdiene.

Bruk av gruppe etter klausul og telling () -funksjon:

Du må opprette en databasetabell med data i en MySQL -database for å sjekke gruppen med i MySQL. Åpne terminalen og koble til MySQL -serveren ved å utføre følgende kommando:

$ sudo mysql -u root

Kjør følgende kommando for å opprette en database som heter test_db:

Opprette databasetest_db;

Kjør følgende kommando for å velge databasen:

Bruk test_db;

Kjør følgende spørsmål for å opprette en tabell som heter Sales_persons med fire felt:

Lag tabell Sales_persons (
id int auto_increment primærnøkkel,
Navn varchar (30) ikke null,
E -post varchar (50),
Kontakt_no varchar (30));

Kjør følgende spørsmål for å sette inn de tre postene i selger bord:

Sett inn 'Sales_persons' ('id', 'Navn', 'E -post', 'Contact_no') verdier (null, 'Kamal Hasan', '[email protected] ',' 0191275634 '),
(Null, 'Nila Hossain', '[email protected] ',' 01855342357 '),
(Null, 'Abir Hossain', '[email protected] ',' 01634235698 ');

Kjør følgende spørsmål for å opprette en tabell som heter Salg med fire felt som inneholder en fremmed nøkkel som vil skape det en-til-mange-forholdet fra Sales_persons bord til Salg bord.

Lag bordsalg (
id int ikke null primærnøkkel,
Sales_date date ikke null,
beløp int,
sp_id int,
Begrensning FK_SP Foreign Key (SP_ID)
Referanser Sales_persons (ID)
På slett kaskade på oppdatering kaskade);

Kjør følgende spørsmål for å sette inn fire poster i Salg bord.

Sett inn 'Sales' ('ID', 'Sales_date', 'Beløp', 'SP_ID') verdier
('90', '2021-11-09', '800000', '1'),
('34', '2020-12-15', '5634555', '3'),
('67', '2021-12-23', '900000', '1'),
('56', '2020-12-31', '6700000', '1');

Eksempel 1: Bruk av gruppe etter klausul med en enkelt kolonne

Kjør følgende velg spørring for å finne ut ID og navn på selgere som har poster i Salg bord. Selger -ID brukes til gruppering i gruppen etter klausul. I henhold til innholdet i salgstabellen inneholder salgstabellen postene til de to selgere som vil bli skrevet ut i utdataene:

Velg SP_ID som ID, Sales_persons.Navn som 'salgsperson'
Fra Sales_persons, Sales
Hvor Sales_persons.ID = salg.sp_id
Gruppe av sp_id;

Produksjon:

Følgende utgang vises etter å ha utført forrige spørring:

Eksempel 2: Bruk av gruppe etter klausul med flere kolonner

Bruken av gruppe BY -klausul med to kolonner er vist i følgende valgte spørsmål. Selgerne som har en oppføring i Salg Tabell for november Måneden vil bli skrevet ut i utdataene etter å ha utført spørringen. Det er bare en oppføring for november måned i Salg bord:

Velg SP_ID som ID, Sales_persons.Navn som 'salgsperson'
Fra Sales_persons, Sales
Hvor Sales_persons.ID = salg.sp_id og månednavn (Sales_date) = 'november'
Gruppe av sp_id, månednavn (Sales_date);

Produksjon:

Følgende utgang vises etter å ha utført forrige spørring:

Eksempel 3: Bruk av gruppe etter klausul med telling (*) -funksjonen

Bruken av grev (*) -funksjonen med gruppen BY -klausulen er vist i følgende spørsmål. Det totale antall salg vil telles for hver selger vil bli skrevet ut etter utførelse av spørringen:

Velg Sales_persons.Navn som 'salgsperson', tell (*)
Fra Sales_persons, Sales
Hvor Sales_persons.ID = salg.sp_id
Gruppe av sp_id;

Produksjon:

I følge dataene til Salg Tabell, følgende utgang vises etter å ha utført den previous spørringen:

Eksempel 4: Bruk av gruppe etter klausul med telling (uttrykk) -funksjonen

Bruken av telling (uttrykk) -funksjonen med gruppen BY -klausulen er vist i følgende spørsmål. Det totale antallet salg basert på månedens navn vil telles etter exe-skjæring av spørringen:

Velg månednavn (salg.Sales_date) som 'måned', telling (måned (salg.Sales_date)) som 'Antall salg'
Fra salg
Gruppe etter månednavn (salg.Sales_date);

Produksjon:

I følge dataene til Salg Tabell, følgende utgang vises etter å ha utført den previous spørringen:

Eksempel 5: Bruk av gruppe etter klausul med tellingen (distinkt expres-sjon)

Telling (uttrykk) -funksjonen med gruppen BY-klausulen har blitt brukt i følgende Que-On for å telle det totale antall salg basert på månedens navn og selger-ID:

Velg SP_ID som 'Sales Person ID', månednavn (Sales_date) som måned, Count (SP_ID) som 'Total Sales'
Fra salg
Gruppe etter månednavn (Sales_date), SP_ID;

Produksjon:

I følge dataene til Salg Tabell, følgende utgang vises etter å ha utført den previous spørringen:

Tellingen (distinkt uttrykk) brukes i følgende spørsmål for å bestemme det unike salget basert på månedens navn og salgsperson -ID:

Velg SP_ID som 'Sales Person ID', Monthame (Sales_Date) som måned, Count (distinkt SP_ID) som 'unikt salg funnet'
Fra salg
Gruppe etter månednavn (Sales_date), SP_ID;

Produksjon:

I følge dataene til Salg Tabell, følgende utgang vises etter å ha utført den previous spørringen:

Konklusjon:

Den enkle bruken av gruppen etter klausul og gruppen BY -klausul med Count () -funksjonen vist i denne opplæringen Bruk flere utvalgte spørsmål. Hensikten med å bruke gruppe BY -klausul vil være klart etter å ha lest denne opplæringen. Vi håper du fant denne artikkelen nyttig. Sjekk ut andre Linux -hint -artikler for flere tips og opplæringsprogrammer.