sql >> Database >  >> RDS >> Database

Hoe de GROUP BY-clausule in SQL te gebruiken?

In dit SQL-artikel leren we over de GROUP BY-clausule en hoe deze te gebruiken in SQL. We zullen ook het gebruik van de GROUP BY-clausule met de WHERE-clausule bespreken.

Wat is de GROUP BY-clausule?

De GROUP BY-clausule is een SQL-clausule die in de SELECT-instructie wordt gebruikt om dezelfde records van een kolom in de groep te beheren met behulp van SQL-functies.

Syntaxis van GROUP BY-clausule:

SELECT columnname1, columnname2, columnname3 FROM tablename GROUP BY columnname;

We kunnen meerdere kolommen uit de tabel gebruiken in de GROUP BY-component.

Er zijn enkele stappen die we moeten leren om de GROUP BY-component in de SQL-query te gebruiken:

1. Maak een nieuwe database of gebruik een bestaande database door de database te selecteren met het USE-sleutelwoord gevolgd door de databasenaam.

2. Maak een nieuwe tabel in de geselecteerde database, of u kunt een reeds gemaakte tabel gebruiken.

3. Als de tabel nieuw is gemaakt, voegt u de records in de nieuw gemaakte database in met behulp van de INSERT-query en bekijkt u de ingevoegde gegevens met de SELECT-query zonder de GROUP BY-component.

4. Nu zijn we klaar om de GROUP BY-component in de SQL-query's te gebruiken.

Stap 1:Maak een nieuwe database of gebruik een reeds aangemaakte database.

Ik heb al een database aangemaakt. Ik zal mijn bestaande databasenaam, Company, gebruiken.

USE Company;

Bedrijf is de naam van de database.

Degenen die geen database hebben gemaakt, volgen de onderstaande vraag om de database te maken:

CREATE DATABASE database_name;

Nadat u de database hebt gemaakt, selecteert u de database met behulp van het USE-sleutelwoord gevolgd door de databasenaam.

Stap 2:Maak een nieuwe tabel of gebruik een reeds bestaande tabel:

Ik heb al een tabel gemaakt. Ik zal de bestaande tabel met de naam Werknemers gebruiken.

Volg de onderstaande CREATE TABLE-syntaxis om de nieuwe tabellen te maken:

CREATE TABLE table_name(

columnname1 datatype(column size),

columnname2 datatype(column size),

columnname3 datatype(column size)

);

Stap 3:Voeg de records in de nieuw gemaakte tabel in met de INSERT-query en bekijk de records met de SELECT-query.

Gebruik de volgende syntaxis om nieuwe records in de tabel in te voegen:

INSERT INTO table_name VALUES(value1, value2, value3);

Gebruik de volgende syntaxis om de records uit de tabel te bekijken:

SELECT * FROM table_name;

De volgende zoekopdracht toont de records van werknemers:

SELECT * FROM Employees;

De uitvoer van de bovenstaande SELECT-query is:

WERKNEMER-ID FIRST_NAME LAST_NAME SALARIS STAD AFDELING MANAGERID
1001 VAIBHAVI MISHRA 65500 PUNE ORAKLE 1
1002 VAIBHAV SHARMA 60000 NOIDA C# 5
1003 NIKHIL VANI 50500 JAIPUR FMW 2
2001 PRACHI SHARMA 55500 CHANDIGARH ORAKLE 1
2002 BHAVESH JAIN 65500 PUNE FMW 2
2003 RUCHIKA JAIN 50000 MUMBAI C# 5
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3002 ANUJA WANRE 50500 JAIPUR FMW 2
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4001 RAJESH GOUD 60500 MUMBAI TESTEN 4
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3
4003 RUCHIKA AGARWAL 60000 DELHI ORAKLE 1
5001 ARCHIT SHARMA 55500 DELHI TESTEN 4
5002 SANKET CHAUHAN 70000 HYDERABAD JAVA 3
5003 ROSHAN NEHTE 48500 CHANDIGARH C# 5
6001 RAHUL NIKAM 54500 BANGALORE TESTEN 4
6002 ATISH JADHAV 60500 BANGALORE C# 5
6003 NIKITA INGALE 65000 HYDERABAD ORAKLE 1

Stap 4:We zijn klaar om de GROUP BY-clausule in de zoekopdrachten te gebruiken

We gaan nu dieper in op de GROUP BY-clausule met behulp van voorbeelden

Voorbeeld 1: Schrijf een query om de werknemersrecords groep per stad weer te geven.

SELECT * FROM EMPLOYEES GROUP BY CITY;

De bovenstaande query toont de werknemersrecords waarbij een werknemer uit dezelfde stad als één groep wordt beschouwd. Als er bijvoorbeeld 10 werknemersrecords in de tabel zijn waarvan 3 afkomstig zijn uit de stad Pune, 3 uit de stad Mumbai, 2 uit Hyderabad en Bangalore, dan zal de bovenstaande zoekopdracht de werknemer van de stad Pune in de stad Mumbai groeperen als één record, enzovoort .

De uitvoer van de bovenstaande vraag:

WERKNEMER-ID FIRST_NAME LAST_NAME SALARIS STAD AFDELING MANAGERID
6001 RAHUL NIKAM 54500 BANGALORE TESTEN 4
2001 PRACHI SHARMA 55500 CHANDIGARH ORAKLE 1
4003 RUCHIKA AGARWAL 60000 DELHI ORAKLE 1
5002 SANKET CHAUHAN 70000 HYDERABAD JAVA 3
1003 NIKHIL VANI 50500 JAIPUR FMW 2
2003 RUCHIKA JAIN 50000 MUMBAI C# 5
1002 VAIBHAV SHARMA 60000 NOIDA C# 5
1001 VAIBHAVI MISHRA 65500 PUNE ORAKLE 1

Zoals we kunnen zien, zijn de werknemersrecords gegroepeerd per stad en worden records standaard in oplopende volgorde weergegeven.

Voorbeeld 2: Schrijf een query om de records van werknemers op salaris in aflopende volgorde weer te geven.

SELECT * FROM EMPLOYEES GROUP BY SALARY DESC; 

De bovenstaande query geeft de werknemersrecords weer waarbij werknemers met hetzelfde salaris als één groep worden beschouwd, en records worden in aflopende volgorde weergegeven.

De uitvoer van de bovenstaande zoekopdracht:

WERKNEMER-ID FIRST_NAME LAST_NAME SALARIS STAD AFDELING MANAGERID
5002 SANKET CHAUHAN 70000 HYDERABAD JAVA 3
1001 VAIBHAVI MISHRA 65500 PUNE ORAKLE 1
6003 NIKITA INGALE 65000 HYDERABAD ORAKLE 1
4001 RAJESH GOUD 60500 MUMBAI TESTEN 4
1002 VAIBHAV SHARMA 60000 NOIDA C# 5
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
2001 PRACHI SHARMA 55500 CHANDIGARH ORAKLE 1
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3
1003 NIKHIL VANI 50500 JAIPUR FMW 2
2003 RUCHIKA JAIN 50000 MUMBAI C# 5
5003 ROSHAN NEHTE 48500 CHANDIGARH C# 5

Zoals we kunnen zien, zijn de records van de werknemers gegroepeerd op salaris en worden de records in aflopende volgorde weergegeven, zoals we aan het einde desc noemen.

Voorbeeld 3: Schrijf een query om de records van werknemers per salaris en stad weer te geven.

SELECT * FROM EMPLOYEES GROUP BY SALARY, CITY;

De bovenstaande query toont de werknemersrecords waarbij werknemers met hetzelfde salaris en dezelfde stad als één groep worden beschouwd.

Stel dat de tabel 10 werknemersrecords had. Vanaf 10 werknemers Het salaris en de stad van 2 werknemers komen overeen met de andere twee werknemers en de rust van de zes werknemers is het salaris en de stad niet geëvenaard, dan worden de 6 werknemers als 6 afzonderlijke groepen beschouwd en worden 2 werknemers die overeenkomen met de andere 2 werknemers als één groep beschouwd . Kortom, er worden 8 groepen gevormd.

De uitvoer van de bovenstaande zoekopdracht:

WERKNEMER-ID FIRST_NAME LAST_NAME SALARIS STAD AFDELING MANAGERID
5003 ROSHAN NEHTE 48500 CHANDIGARH C# 5
2003 RUCHIKA JAIN 50000 MUMBAI C# 5
1003 NIKHIL VANI 50500 JAIPUR FMW 2
6001 RAHUL NIKAM 54500 BANGALORE TESTEN 4
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3
2001 PRACHI SHARMA 55500 CHANDIGARH ORAKLE 1
5001 ARCHIT SHARMA 55500 DELHI TESTEN 4
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4003 RUCHIKA AGARWAL 60000 DELHI ORAKLE 1
1002 VAIBHAV SHARMA 60000 NOIDA C# 5
6002 ATISH JADHAV 60500 BANGALORE C# 5
4001 RAJESH GOUD 60500 MUMBAI TESTEN 4
6003 NIKITA INGALE 65000 HYDERABAD ORAKLE 1
1001 VAIBHAVI MISHRA 65500 PUNE ORAKLE 1
5002 SANKET CHAUHAN 70000 HYDERABAD JAVA 3

Zoals we kunnen zien, zijn de records van de werknemers gegroepeerd op salaris en stad en worden records standaard in oplopende volgorde weergegeven.

Voorbeeld 4: Schrijf een zoekopdracht om de gegevens van werknemers per stad en afdeling weer te geven.

SELECT * FROM EMPLOYEES GROUP BY CITY, DEPARTMENT;

De bovenstaande query toont de werknemersrecords waar werknemers zich in dezelfde stad bevinden, en de afdeling wordt als één groep beschouwd.

De uitvoer van de bovenstaande zoekopdracht:

WERKNEMER-ID FIRST_NAME LAST_NAME SALARIS STAD AFDELING MANAGERID
6002 ATISH JADHAV 60500 BANGALORE C# 5
6001 RAHUL NIKAM 54500 BANGALORE TESTEN 4
5003 ROSHAN NEHTE 48500 CHANDIGARH C# 5
2001 PRACHI SHARMA 55500 CHANDIGARH ORAKLE 1
4003 RUCHIKA AGARWAL 60000 DELHI ORAKLE 1
5001 ARCHIT SHARMA 55500 DELHI TESTEN 4
5002 SANKET CHAUHAN 70000 HYDERABAD JAVA 3
6003 NIKITA INGALE 65000 HYDERABAD ORAKLE 1
1003 NIKHIL VANI 50500 JAIPUR FMW 2
2003 RUCHIKA JAIN 50000 MUMBAI C# 5
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4001 RAJESH GOUD 60500 MUMBAI TESTEN 4
1002 VAIBHAV SHARMA 60000 NOIDA C# 5
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3
2002 BHAVESH JAIN 65500 PUNE FMW 2
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
1001 VAIBHAVI MISHRA 65500 PUNE ORAKLE 1

Zoals we kunnen zien, zijn de records van de werknemers gegroepeerd per stad en afdeling en worden records standaard in oplopende volgorde weergegeven.

Voorbeeld 5: Schrijf een query om de lijst met werknemers in elke afdeling te tellen vanuit de werknemerstabel.

SELECT DEPARTMENT, COUNT(DEPARTMENT) FROM EMPLOYEES GROUP BY DEPARTMENT;

De bovenstaande query toont het aantal werknemers in elke afdelingsgroep per afdeling. Zoals zes medewerkers op de HR-afdeling werken, vijf op een andere afdeling.

De uitvoer van de bovenstaande zoekopdracht:

AFDELING COUNT(AFDELING)
C# 4
FMW 3
JAVA 4
ORAKLE 4
TESTEN 3

Zoals we kunnen zien, werken vier medewerkers op de C#-afdeling, drie op de FMW-afdeling, enz.

Voorbeeld 6: Schrijf een zoekopdracht om de lijst met werknemers van elke stad te tellen vanuit de werknemerstabel.

SELECT CITY, COUNT(CITY) FROM EMPLOYEES GROUP BY CITY;

De bovenstaande query geeft het aantal werknemers in elke stad weer, gegroepeerd per stad. Zoals drie werknemers werken vanuit de stad Pune, vier werken vanuit een andere stad, enzovoort.

De uitvoer van de bovenstaande vraag:

STAD COUNT(CITY)
BANGALORE 2
CHANDIGARH 2
DELHI 2
HYDERABAD 2
JAIPUR 2
MUMBAI 3
NOIDA 2
PUNE 3

Zoals we kunnen zien, werken twee werknemers in de stad Bangalore, drie in de stad Mumbai, enzovoort.

Voorbeeld 7: Schrijf een vraag om de salarisgroep van de werknemers per stad op te tellen.

SELECT CITY, SUM(SALARY) AS SALARY FROM EMPLOYEES GROUP BY CITY;

Het bovenstaande wordt gebruikt om de salarissen van de werknemers op te tellen, gegroepeerd op plaatsnaam. Voor werknemers uit dezelfde stad is hun salaris bijvoorbeeld de som en wordt als één groep beschouwd. We gebruikten de somfunctie gevolgd door de salariskolom voor het toevoegen van salaris.

De uitvoer van de bovenstaande zoekopdracht:

STAD SALARIS
BANGALORE 115000
CHANDIGARH 104000
DELHI 115500
HYDERABAD 135000
JAIPUR 101000
MUMBAI 169000
NOIDA 114500
PUNE 186500

Zoals we kunnen zien, is het stadssalaris van Bangalore 115000, het stadssalaris van Chandigarh is 104000, wat de toevoeging is van verschillende werknemerssalarissen, maar vanuit de stad wordt dezelfde aanpak gebruikt voor elke stad.

Voorbeeld 8: Schrijf een zoekopdracht om het minimumsalaris van elke afdeling te vinden.

SELECT DEPARTMENT, MIN(SALARY) FROM EMPLOYEES GROUP BY DEPARTMENT;

De bovenstaande zoekopdracht wordt gebruikt om het minimumloon van de werknemer van elke afdeling te vinden. Een van de medewerkers van de Java-afdeling heeft een salaris van 54500, het laagste van de hele Java-afdeling. Dezelfde 48500 is het laagste salaris dat wordt betaald aan de medewerker op de afdeling C#.

De uitvoer van de bovenstaande zoekopdracht:

AFDELING MIN(SALARIS)
C# 48500
FMW 50500
JAVA 54500
ORAKLE 55500
TESTEN 54500

Zoals we kunnen zien, is 50500 het laagste salaris dat wordt betaald aan een van de werknemers van de afdeling FMW, 55500 is het laagste salaris dat wordt betaald aan een van de werknemers van de afdeling ORACLE.

Voorbeeld 9: Schrijf een zoekopdracht om het minimumloon van elke stad te vinden.

SELECT CITY, MAX(SALARY) FROM EMPLOYEES GROUP BY CITY;

De bovenstaande zoekopdracht wordt gebruikt om het maximale salaris van elke stad te vinden. Een van de werknemers van het salaris van de stad Pune is 65500, wat het hoogste is in de hele stad Pune, dezelfde 60500 is het hoogste salaris dat aan de werknemer in de stad Mumbai wordt betaald.

De uitvoer van de bovenstaande vraag:

STAD MAX(SALARIS)
BANGALORE 60500
CHANDIGARH 55500
DELHI 60000
HYDERABAD 70000
JAIPUR 50500
MUMBAI 60500
NOIDA 60000
PUNE 65500

Zoals we kunnen zien, is 50500 het hoogste salaris dat wordt betaald aan een van de werknemers in de stad Jaipur, 55500 is het hoogste salaris dat wordt betaald aan een van de werknemers in de stad Chandigarh.


  1. Filteren op AANTAL(*)?

  2. Hoe u uw MySQL- en MariaDB-back-ups kunt versleutelen

  3. Update meerdere kolommen in een triggerfunctie in plpgsql

  4. Splits IPv4-adres in 4 cijfers in Oracle sql