sql >> Database teknologi >  >> RDS >> Database

Sådan bruges GROUP BY-klausul i SQL

I denne SQL-artikel lærer vi om GROUP BY-sætningen, og hvordan man bruger den i SQL. Vi vil også diskutere brugen af ​​GROUP BY-sætningen med WHERE-sætningen.

Hvad er GROUP BY-sætningen?

GROUP BY-sætningen er en SQL-sætning, der bruges i SELECT-sætningen til at administrere de samme poster i en kolonne i gruppen ved hjælp af SQL-funktioner.

Syntaks for GROUP BY-sætning:

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

Vi kan bruge flere kolonner fra tabellen i GROUP BY-sætningen.

Der er nogle trin, vi skal lære for at bruge GROUP BY-sætningen i SQL-forespørgslen:

1. Opret en ny database, eller brug en eksisterende database ved at vælge databasen ved at bruge nøgleordet USE efterfulgt af databasenavnet.

2. Opret en ny tabel i den valgte database, eller du kan bruge en allerede oprettet tabel.

3. Hvis tabellen er nyoprettet, skal du indsætte posterne i den nyoprettede database ved hjælp af INSERT-forespørgslen og se de indsatte data ved hjælp af SELECT-forespørgslen uden GROUP BY-sætningen.

4. Nu er vi klar til at bruge GROUP BY-sætningen i SQL-forespørgslerne.

Trin 1:Opret en ny database, eller brug en allerede oprettet database.

Jeg har allerede oprettet en database. Jeg vil bruge mit eksisterende oprettede databasenavn, Company.

USE Company;

Firma er databasenavnet.

De, der ikke har oprettet en database, følg nedenstående forespørgsel for at oprette databasen:

CREATE DATABASE database_name;

Når du har oprettet databasen, skal du vælge databasen ved at bruge nøgleordet USE efterfulgt af databasenavnet.

Trin 2:Opret en ny tabel, eller brug allerede eksisterende tabel:

Jeg har allerede lavet en tabel. Jeg vil bruge den eksisterende tabel med navnet Medarbejdere.

For at oprette de nye tabeller, følg nedenstående CREATE TABLE syntaks:

CREATE TABLE table_name(

columnname1 datatype(column size),

columnname2 datatype(column size),

columnname3 datatype(column size)

);

Trin 3:Indsæt posterne i den nyoprettede tabel ved hjælp af INSERT-forespørgslen, og se posterne ved hjælp af SELECT-forespørgslen.

Brug følgende syntaks til at indsætte nye poster i tabellen:

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

Brug følgende syntaks til at se posterne fra tabellen:

SELECT * FROM table_name;

Følgende forespørgsel viser medarbejdernes optegnelser:

SELECT * FROM Employees;

Outputtet af ovenstående SELECT-forespørgsel er:

EMPLOYEEID FIRST_NAME LAST_NAME LØN BY AFDELING MANAGERID
1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1
1002 VAIBHAV SHARMA 60.000 NOIDA C# 5
1003 NIKHIL VANI 50500 JAIPUR FMW 2
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1
2002 BHAVESH JAIN 65500 PUNE FMW 2
2003 RUCHIKA JAIN 50.000 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 TEST 4
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3
4003 RUCHIKA AGARWAL 60.000 DELHI ORACLE 1
5001 ARCHIT SHARMA 55500 DELHI TEST 4
5002 SANKET CHAUHAN 70.000 HYDERABAD JAVA 3
5003 ROSHAN NEHTE 48500 CHANDIGARH C# 5
6001 RAHUL NIKAM 54500 BANGALORE TEST 4
6002 ATISH JADHAV 60500 BANGALORE C# 5
6003 NIKITA INGALE 65.000 HYDERABAD ORACLE 1

Trin 4:Vi er klar til at bruge GROUP BY-sætningen i forespørgslerne

Vi vil nu tage et dybt dyk ned i GROUP BY-sætningen ved hjælp af eksempler

Eksempel 1: Skriv en forespørgsel for at få vist medarbejderregistreringerne grupperet efter by.

SELECT * FROM EMPLOYEES GROUP BY CITY;

Ovenstående forespørgsel viser medarbejdernes poster, hvor en medarbejder fra samme by vil blive betragtet som én gruppe. For eksempel, hvis der er 10 ansatte poster i tabellen, hvor 3 er fra Pune by, 3 er fra Mumbai by, 2 er fra Hyderabad og Bangalore, så vil ovenstående forespørgsel gruppere Pune by medarbejder Mumbai by medarbejder som én post, og så videre .

Outputtet af ovenstående forespørgsel:

EMPLOYEEID FIRST_NAME LAST_NAME LØN BY AFDELING MANAGERID
6001 RAHUL NIKAM 54500 BANGALORE TEST 4
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1
4003 RUCHIKA AGARWAL 60.000 DELHI ORACLE 1
5002 SANKET CHAUHAN 70.000 HYDERABAD JAVA 3
1003 NIKHIL VANI 50500 JAIPUR FMW 2
2003 RUCHIKA JAIN 50.000 MUMBAI C# 5
1002 VAIBHAV SHARMA 60.000 NOIDA C# 5
1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1

Som vi kan se, er medarbejdernes poster grupperet efter by, og poster vises som standard i stigende rækkefølge.

Eksempel 2: Skriv en forespørgsel for at vise medarbejdernes optegnelser grupperet efter løn i faldende rækkefølge.

SELECT * FROM EMPLOYEES GROUP BY SALARY DESC; 

Ovenstående forespørgsel viser medarbejdernes poster, hvor medarbejdere med samme løn vil blive betragtet som én gruppe, og poster vil blive vist i faldende rækkefølge.

Outputtet fra ovenstående forespørgsel:

EMPLOYEEID FIRST_NAME LAST_NAME LØN BY AFDELING MANAGERID
5002 SANKET CHAUHAN 70.000 HYDERABAD JAVA 3
1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1
6003 NIKITA INGALE 65.000 HYDERABAD ORACLE 1
4001 RAJESH GOUD 60500 MUMBAI TEST 4
1002 VAIBHAV SHARMA 60.000 NOIDA C# 5
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3
1003 NIKHIL VANI 50500 JAIPUR FMW 2
2003 RUCHIKA JAIN 50.000 MUMBAI C# 5
5003 ROSHAN NEHTE 48500 CHANDIGARH C# 5

Som vi kan se, er medarbejdernes poster grupperet efter løn, og poster vises i faldende rækkefølge, som vi nævner desc til sidst.

Eksempel 3: Skriv en forespørgsel for at vise medarbejdernes optegnelser grupperet efter løn og by.

SELECT * FROM EMPLOYEES GROUP BY SALARY, CITY;

Ovenstående forespørgsel viser medarbejdernes poster, hvor medarbejdere med samme løn og by vil blive betragtet som én gruppe.

Antag for eksempel, at tabellen havde 10 medarbejderposter. Fra 10 ansatte 2 medarbejderes løn og by matcher med andre to ansatte og resten seks medarbejdere løn og by er umatchede, så vil de 6 medarbejdere blive betragtet som 6 separate grupper, og 2 medarbejdere der matcher med andre 2 medarbejdere vil blive betragtet som én gruppe . Kort sagt vil der blive dannet 8 grupper.

Outputtet fra ovenstående forespørgsel:

EMPLOYEEID FIRST_NAME LAST_NAME LØN BY AFDELING MANAGERID
5003 ROSHAN NEHTE 48500 CHANDIGARH C# 5
2003 RUCHIKA JAIN 50.000 MUMBAI C# 5
1003 NIKHIL VANI 50500 JAIPUR FMW 2
6001 RAHUL NIKAM 54500 BANGALORE TEST 4
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1
5001 ARCHIT SHARMA 55500 DELHI TEST 4
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4003 RUCHIKA AGARWAL 60.000 DELHI ORACLE 1
1002 VAIBHAV SHARMA 60.000 NOIDA C# 5
6002 ATISH JADHAV 60500 BANGALORE C# 5
4001 RAJESH GOUD 60500 MUMBAI TEST 4
6003 NIKITA INGALE 65.000 HYDERABAD ORACLE 1
1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1
5002 SANKET CHAUHAN 70.000 HYDERABAD JAVA 3

Som vi kan se, er medarbejdernes poster grupperet efter løn og by, og poster vises som standard i stigende rækkefølge.

Eksempel 4: Skriv en forespørgsel for at vise medarbejdernes optegnelser efter by og afdeling.

SELECT * FROM EMPLOYEES GROUP BY CITY, DEPARTMENT;

Ovenstående forespørgsel viser medarbejdernes registreringer, hvor medarbejdere er i samme by, og afdelingen vil blive betragtet som én gruppe.

Outputtet fra ovenstående forespørgsel:

EMPLOYEEID FIRST_NAME LAST_NAME LØN BY AFDELING MANAGERID
6002 ATISH JADHAV 60500 BANGALORE C# 5
6001 RAHUL NIKAM 54500 BANGALORE TEST 4
5003 ROSHAN NEHTE 48500 CHANDIGARH C# 5
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1
4003 RUCHIKA AGARWAL 60.000 DELHI ORACLE 1
5001 ARCHIT SHARMA 55500 DELHI TEST 4
5002 SANKET CHAUHAN 70.000 HYDERABAD JAVA 3
6003 NIKITA INGALE 65.000 HYDERABAD ORACLE 1
1003 NIKHIL VANI 50500 JAIPUR FMW 2
2003 RUCHIKA JAIN 50.000 MUMBAI C# 5
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4001 RAJESH GOUD 60500 MUMBAI TEST 4
1002 VAIBHAV SHARMA 60.000 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 ORACLE 1

Som vi kan se, er medarbejdernes registreringer grupperet efter by og afdeling, og poster vises som standard i stigende rækkefølge.

Eksempel 5: Skriv en forespørgsel for at tælle listen over medarbejdere i hver afdeling fra medarbejdernes tabel.

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

Ovenstående forespørgsel viser antallet af medarbejdere i hver afdelingsgruppe efter afdelingen. Ligesom seks medarbejdere arbejder i HR-afdelingen, arbejder fem i en anden afdeling.

Outputtet fra ovenstående forespørgsel:

AFDELING COUNT(AFDELING)
C# 4
FMW 3
JAVA 4
ORACLE 4
TEST 3

Som vi kan se, arbejder fire medarbejdere i C#-afdelingen, tre arbejder i FMW-afdelingen osv.

Eksempel 6: Skriv en forespørgsel for at tælle listen over medarbejdere fra hver by fra medarbejdernes tabel.

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

Ovenstående forespørgsel viser antallet af ansatte i hver bygruppe efter by. Ligesom tre ansatte arbejder fra Pune by, fire arbejder fra en anden by og så videre.

Outputtet af ovenstående forespørgsel:

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

Som vi kan se, arbejder to medarbejdere fra Bangalore by, tre arbejder fra Mumbai by og så videre.

Eksempel 7: Skriv en forespørgsel for at summere medarbejdernes løngruppe efter byen.

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

Ovenstående bruges til at summere medarbejdernes lønninger grupperet efter bynavn. For eksempel, for ansatte fra samme by, vil deres løn være summen og betragtes som én gruppe. Vi brugte funktionen samlet sum efterfulgt af lønkolonnen til at tilføje løn.

Outputtet fra ovenstående forespørgsel:

BY LØN
BANGALORE 115.000
CHANDIGARH 104000
DELHI 115500
HYDERABAD 135.000
JAIPUR 101000
MUMBAI 169000
NOIDA 114500
PUNE 186500

Som vi kan se, er Bangalore bysumsløn 115.000, Chandigarh bysumløn er 104.000, hvilket er en tilføjelse af forskellig medarbejderløn, men fra byen bruges den samme tilgang for hver by.

Eksempel 8: Skriv en forespørgsel for at finde minimumslønnen fra hver afdeling.

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

Ovenstående forespørgsel bruges til at finde medarbejderens minimumsløn fra hver afdeling. En af medarbejderne fra Java-afdelingens løn er 54500,- hvilket er det laveste i over hele java-afdelingen. Samme 48500 er den laveste løn, der udbetales til medarbejderen i C#-afdelingen.

Outputtet fra ovenstående forespørgsel:

AFDELING MIN(LØN)
C# 48500
FMW 50500
JAVA 54500
ORACLE 55500
TEST 54500

Som vi kan se, er 50500 den laveste løn, der udbetales til en af ​​medarbejderne i FMW-afdelingen, 55500 er den laveste løn, der udbetales til en af ​​medarbejderne i ORACLE-afdelingen.

Eksempel 9: Skriv en forespørgsel for at finde minimumslønnen fra hver by.

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

Ovenstående forespørgsel bruges til at finde den maksimale løn fra hver by. En af de ansatte fra Pune-byens løn er 65.500, hvilket er den højeste i hele Pune-byen, samme 60.500 er den højeste løn, der betales til medarbejderen i Mumbai-byen.

Outputtet af ovenstående forespørgsel:

BY MAX(LØN)
BANGALORE 60500
CHANDIGARH 55500
DELHI 60.000
HYDERABAD 70.000
JAIPUR 50500
MUMBAI 60500
NOIDA 60.000
PUNE 65500

Som vi kan se, er 50500 den højeste løn, der betales til en af ​​medarbejderne i Jaipur by, 55500 er den højeste løn, der betales til en af ​​medarbejderne i Chandigarh by.


  1. Brug TYPEPROPERTY() til at returnere oplysninger om en datatype i SQL Server

  2. MySQL Update Indre Join-tabeller forespørgsel

  3. MySQL Forberedte udsagn med en variabel størrelsesliste

  4. Sådan opdeles forespørgselsvindue i SQL Server Management Studio (SSMS) - SQL Server / TSQL selvstudie del 13