Als er een grote hoeveelheid gegevens aanwezig is, zien we vaak een mogelijkheid om gegevens te manipuleren volgens onze vereisten. De GROUP BY-clausule is zo'n instructie in SQL, die wordt gebruikt om de gegevens te groeperen op basis van enkele kolommen of op voorwaarden. In dit artikel over SQL GROUP BY-statement, bespreek ik een paar manieren om de GROUP BY-statements in de volgende volgorde te gebruiken:
- GROUP BY-instructie
- Syntaxis
- Voorbeelden:
- Gebruik GROUP BY voor één kolom
- GROUP BY op meerdere kolommen
- Gebruik GROUP BY met ORDER BY
- GROUP BY met HAVING-clausule
- Gebruik GROUP BY met JOINS
Laat ons, voordat we verder gaan met de voorbeelden over het gebruik van de GROUP BY-clausule, begrijpen wat GROUP BY is in SQL en de syntaxis ervan.
SQL GROUP BY-instructie
Deze instructie wordt gebruikt om records met dezelfde waarden te groeperen. De GROUP BY-instructie wordt vaak gebruikt met de aggregatiefuncties om de resultaten te groeperen op een of meer kolommen. Afgezien hiervan wordt de GROUP BY-clausule ook gebruikt met de HAVING-clausule en JOINS om de resultaatset te groeperen op basis van voorwaarden.
SQL GROEP OP syntaxis
SELECT Column1, Column2,..., ColumnN FROM TableName WHERE Condition GROUP BY ColumnName(s) ORDER BY ColumnName(s);
Hier kun je de aggregatiefuncties voor de kolomnamen toevoegen, en ook een HAVING-clausule aan het einde van de instructie om een voorwaarde te vermelden. Laten we vervolgens in dit artikel over SQL GROUP BY begrijpen hoe we deze verklaring kunnen implementeren.
Voorbeelden:
Voor een beter begrip heb ik de voorbeelden in de volgende secties verdeeld:
- Gebruik GROUP BY voor één kolom
- GROUP BY op meerdere kolommen
- Gebruik GROUP BY met ORDER BY
- GROUP BY met HAVING-clausule
- Gebruik GROUP BY met JOINS
Ik ga de volgende tabel bekijken om u de voorbeelden uit te leggen:
EmpID | EmpName | EmpEmail | Telefoonnummer | Salaris | Stad |
1 | Nidhi | 9955669999 | 50000 | Mumbai | |
2 | Anay | 9875679861 | 55000 | Pune | |
3 | Rahul | 9876543212 | 35000 | Delhi | |
4 | Sonia | 9876543234 | 35000 | Delhi | |
5 | Akash | 9866865686 | 25000 | Mumbai |
Laten we ze allemaal eens bekijken.
Gebruik SQL GROUP BY op één kolom
Voorbeeld:
Schrijf een zoekopdracht om het aantal werknemers in elke stad op te halen.
SELECT COUNT(EmpID), City FROM Employees GROUP BY City;
Uitvoer:
U ziet de volgende uitvoer:
Count(EmpID) | Stad |
2 | Delhi |
2 | Mumbai |
1 | Pune |
Gebruik SQL GROUP BY op meerdere kolommen
Voorbeeld:
Schrijf een zoekopdracht om het aantal werknemers op te halen met verschillende salarissen in elke stad.
SELECT City, Salary, Count(*) FROM Employees GROUP BY City, Salary;
Uitvoer:
De tabel heeft de volgende gegevens:
Stad | Salaris | Count(*) |
Delhi | 35000 | 2 |
Mumbai | 25000 | 1 |
Mumbai | 50000 | 1 |
Pune | 55000 | 1 |
Gebruik SQL GROUP BY met ORDER BY
Als we de SQL GROUP BY-instructie gebruiken met de ORDER BY-clausule, worden de waarden in oplopende of aflopende volgorde gesorteerd.
Voorbeeld:
Schrijf een zoekopdracht om het aantal werknemers in elke stad op te halen, gesorteerd in aflopende volgorde.
SELECT COUNT(EmpID), City FROM Employees GROUP BY City ORDER BY COUNT(EmpID) DESC;
Uitvoer:
De tabel heeft de volgende gegevens:
Count(EmpID) | Stad |
2 | Delhi |
2 | Mumbai |
1 | Pune |
Gebruik SQL GROUP BY met HAVING-clausule
De SQL GROUP BY-instructie wordt gebruikt met de 'HAVING'-clausule om voorwaarden op groepen te vermelden. Omdat we de aggregatiefuncties niet kunnen gebruiken met de WHERE-clausule, moeten we ook de 'HAVING'-clausule gebruiken om de aggregatiefuncties te gebruiken met GROUP BY.
Voorbeeld:
Schrijf een zoekopdracht om het aantal werknemers in elke stad op te halen, met een salaris> 15000
SELECT COUNT(EmpID), City FROM Employees GROUP BY City HAVING SALARY > 15000;
Uitvoer:
Aangezien alle records in de tabel Werknemers een salaris> 15000 hebben, zien we de volgende tabel als uitvoer:
Count(EmpID) | Stad |
2 | Delhi |
2 | Mumbai |
1 | Pune |
Gebruik GROUP BY met JOINS
JOINS zijn SQL-instructies die worden gebruikt om rijen uit twee of meer tabellen te combineren, gebaseerd op een gerelateerde kolom tussen die tabellen. We kunnen de SQL GROUP BY-instructie gebruiken om de resultatenset te groeperen op basis van een kolom/kolommen. Bekijk de onderstaande tabellen om de JOIN-instructies met de SQL GROUP BY-clausule uit te voeren.
Projectentabel:
ProjectID | EmpID | ClientID | ProjectDatum |
2345 | 1 | 4 | 26-01-2019 |
9876 | 2 | 5 | 28-02-2019 |
3456 | 3 | 6 | 03-12-2019 |
Klantentabel:
ClientID | ClientName |
4 | Sanjana |
5 | Rohan |
6 | Arun |
Voorbeeld
Schrijf een zoekopdracht om het aantal projecten op te sommen dat door elke klant is aangevraagd:
SELECT Clients.ClientName, COUNT(Projects.ProjectID) AS RequestedProjects FROM Projects LEFT JOIN Clients ON Projects.ProjectID = Clients.ProjectID GROUP BY ClientName;
Uitvoer:
De tabel heeft de volgende gegevens:
Klantnaam | Aangevraagde projecten |
Arun | 1 |
Rohan | 1 |
Sanjana | 1 |
Hiermee komen we aan het einde van het artikel SQL GROUP BY. Bekijk dit MySQL DBA-certificeringstraining door Edureka, een vertrouwd online leerbedrijf met een netwerk of meer dan 250.000 tevreden leerlingen verspreid over de hele wereld. Deze cursus leidt u op in de kernconcepten en geavanceerde tools en technieken om gegevens te beheren en de MySQL-database te beheren. Het omvat hands-on leren over concepten zoals MySQL Workbench, MySQL Server, Data Modeling, MySQL Connector, Database Design, MySQL Command line, MySQL Functions, etc. Aan het einde van de training ben je in staat om je eigen MySQL Database te creëren en te beheren en gegevens beheren.
Heeft u een vraag voor ons? Vermeld dit in het opmerkingengedeelte van dit "SQL GROUP BY"-artikel en we nemen zo snel mogelijk contact met u op.