Når en stor mængde data er til stede, ser vi ofte en mulighed for at manipulere data i overensstemmelse med vores krav. GROUP BY-sætning er en sådan sætning i SQL, der bruges til at gruppere data baseret på få kolonner eller på betingelser. I denne artikel om SQL GROUP BY-sætning vil jeg diskutere nogle få måder at bruge GROUP BY-sætningerne på i følgende rækkefølge:
- GRUPPER EFTER-udsagn
- Syntaks
- Eksempler:
- Brug GROUP BY på enkelt kolonne
- GRUPPER EFTER på flere kolonner
- Brug GROUP BY med ORDER BY
- GROUP BY med HAVING-sætning
- Brug GROUP BY med JOINS
Før vi går over til eksemplerne på, hvordan man bruger GROUP BY-sætningen, lad os forstå, hvad der er GROUP BY i SQL og dets syntaks.
SQL GROUP BY-sætning
Denne erklæring bruges til at gruppere poster med de samme værdier. GROUP BY-sætningen bruges ofte sammen med de aggregerede funktioner til at gruppere resultaterne efter en eller flere kolonner. Udover dette bruges GROUP BY-sætningen også med HAVING-sætningen og JOINS til at gruppere resultatsættet baseret på betingelser.
SQL GROUP BY Syntaks
SELECT Column1, Column2,..., ColumnN FROM TableName WHERE Condition GROUP BY ColumnName(s) ORDER BY ColumnName(s);
Her kan du tilføje aggregerede funktioner før kolonnenavnene, og også en HAVING-sætning i slutningen af sætningen for at nævne en betingelse. Lad os derefter i denne artikel om SQL GROUP BY forstå, hvordan denne sætning implementeres.
Eksempler:
For din bedre forståelse har jeg opdelt eksemplerne i følgende sektioner:
- Brug GROUP BY på enkelt kolonne
- GRUPPER EFTER på flere kolonner
- Brug GROUP BY med ORDER BY
- GROUP BY med HAVING-sætning
- Brug GROUP BY med JOINS
Jeg vil overveje følgende tabel for at forklare dig eksemplerne:
EmpID | EmpName | EmpE-mail | Telefonnummer | Løn | By |
1 | Nidhi | 9955669999 | 50.000 | Mumbai | |
2 | Any | 9875679861 | 55.000 | Pune | |
3 | Rahul | 9876543212 | 35.000 | Delhi | |
4 | Sonia | 9876543234 | 35.000 | Delhi | |
5 | Akash | 9866865686 | 25.000 | Mumbai |
Lad os tage et kig på hver enkelt af dem.
Brug SQL GROUP BY på enkelt kolonne
Eksempel:
Skriv en forespørgsel for at hente antallet af ansatte i hver by.
SELECT COUNT(EmpID), City FROM Employees GROUP BY City;
Output:
Du vil se følgende output:
Count(EmpID) | By |
2 | Delhi |
2 | Mumbai |
1 | Pune |
Brug SQL GROUP BY på flere kolonner
Eksempel:
Skriv en forespørgsel for at hente antallet af ansatte med forskellige lønninger i hver by.
SELECT City, Salary, Count(*) FROM Employees GROUP BY City, Salary;
Output:
Tabellen vil have følgende data:
By | Løn | Tal(*) |
Delhi | 35.000 | 2 |
Mumbai | 25.000 | 1 |
Mumbai | 50000 | 1 |
Pune | 55.000 | 1 |
Brug SQL GROUP BY med ORDER BY
Når vi bruger SQL GROUP BY-sætningen med ORDER BY-sætningen, sorteres værdierne enten i stigende eller faldende rækkefølge.
Eksempel:
Skriv en forespørgsel for at hente antallet af ansatte i hver by, sorteret i faldende rækkefølge.
SELECT COUNT(EmpID), City FROM Employees GROUP BY City ORDER BY COUNT(EmpID) DESC;
Output:
Tabellen vil have følgende data:
Count(EmpID) | By |
2 | Delhi |
2 | Mumbai |
1 | Pune |
Brug SQL GROUP BY med HAVING-sætning
SQL GROUP BY-sætningen bruges sammen med 'HAVING'-sætningen for at nævne betingelser på grupper. Da vi ikke kan bruge de samlede funktioner med WHERE-udtrykket, skal vi også bruge "HAVING"-udtrykket for at bruge de samlede funktioner med GROUP BY.
Eksempel:
Skriv en forespørgsel for at hente antallet af ansatte i hver by med en løn> 15.000
SELECT COUNT(EmpID), City FROM Employees GROUP BY City HAVING SALARY > 15000;
Output:
Da alle poster i tabellen Medarbejder har en løn> 15000, vil vi se følgende tabel som output:
Count(EmpID) | By |
2 | Delhi |
2 | Mumbai |
1 | Pune |
Brug GROUP BY med JOINS
JOINS er SQL-sætninger, der bruges til at kombinere rækker fra to eller flere tabeller, baseret på en relateret kolonne mellem disse tabeller. Vi kan bruge SQL GROUP BY-sætningen til at gruppere resultatsættet baseret på en kolonne/kolonner. Overvej nedenstående tabeller for at udføre JOIN-sætningerne med SQL GROUP BY-sætningen.
Tabel over projekter:
Projekt-ID | EmpID | Kunde-id | Projektdato |
2345 | 1 | 4 | 26-01-2019 |
9876 | 2 | 5 | 28-02-2019 |
3456 | 3 | 6 | 12-03-2019 |
Kundetabel:
Kunde-id | Kundenavn |
4 | Sanjana |
5 | Rohan |
6 | Arun |
Eksempel
Skriv en forespørgsel for at angive antallet af projekter, som hver klient har anmodet om:
SELECT Clients.ClientName, COUNT(Projects.ProjectID) AS RequestedProjects FROM Projects LEFT JOIN Clients ON Projects.ProjectID = Clients.ProjectID GROUP BY ClientName;
Output:
Tabellen vil have følgende data:
Kundenavn | Anmodede projekter |
Arun | 1 |
Rohan | 1 |
Sanjana | 1 |
Med det kommer vi til enden af SQL GROUP BY-artiklen. Tjek dette ud MySQL DBA-certificeringsuddannelse af Edureka, en betroet online læringsvirksomhed med et netværk oaf mere end 250.000 tilfredse elever spredt over hele kloden. Dette kursus træner dig i kernekoncepter og avancerede værktøjer og teknikker til at administrere data og administrere MySQL-databasen. Det inkluderer praktisk læring om begreber som MySQL Workbench, MySQL Server, Data Modeling, MySQL Connector, Database Design, MySQL Command line, MySQL Functions osv. Slut på uddannelsen vil du være i stand til at oprette og administrere din egen MySQL Database og administrere data.
Har du et spørgsmål til os? Nævn det i kommentarfeltet i denne "SQL GROUP BY" artikel, og vi vil vende tilbage til dig så hurtigt som muligt.