sql >> Databasteknik >  >> RDS >> Database

Hur man använder GROUP BY-sats i SQL

I den här SQL-artikeln kommer vi att lära oss om GROUP BY-satsen och hur man använder den i SQL. Vi kommer också att diskutera användningen av GROUP BY-satsen med WHERE-satsen.

Vad är GROUP BY-satsen?

GROUP BY-satsen är en SQL-sats som används i SELECT-satsen för att hantera samma poster i en kolumn i gruppen med hjälp av SQL-funktioner.

Syntax för GROUP BY-sats:

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

Vi kan använda flera kolumner från tabellen i GROUP BY-satsen.

Det finns några steg, vi måste lära oss hur man använder GROUP BY-satsen i SQL-frågan:

1. Skapa en ny databas eller använd en befintlig databas genom att välja databasen med nyckelordet USE följt av databasnamnet.

2. Skapa en ny tabell i den valda databasen, eller så kan du använda en redan skapad tabell.

3. Om tabellen är nyskapad, infoga posterna i den nyskapade databasen med INSERT-frågan och visa infogade data med SELECT-frågan utan GROUP BY-satsen.

4. Nu är vi redo att använda GROUP BY-satsen i SQL-frågorna.

Steg 1:Skapa en ny databas eller använd en redan skapad databas.

Jag har redan skapat en databas. Jag kommer att använda mitt befintliga skapade databasnamn, Företag.

USE Company;

Företag är databasnamnet.

De som inte har skapat en databas följer nedanstående fråga för att skapa databasen:

CREATE DATABASE database_name;

När du har skapat databasen väljer du databasen med hjälp av nyckelordet USE följt av databasens namn.

Steg 2:Skapa en ny tabell eller använd redan befintlig tabell:

Jag har redan skapat en tabell. Jag kommer att använda den befintliga tabellen med namnet Anställda.

För att skapa de nya tabellerna, följ nedanstående CREATE TABLE-syntax:

CREATE TABLE table_name(

columnname1 datatype(column size),

columnname2 datatype(column size),

columnname3 datatype(column size)

);

Steg 3:Infoga posterna i den nyskapade tabellen med INSERT-frågan och visa posterna med SELECT-frågan.

Använd följande syntax för att infoga nya poster i tabellen:

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

Använd följande syntax för att se posterna från tabellen:

SELECT * FROM table_name;

Följande fråga kommer att visa uppgifterna för anställda:

SELECT * FROM Employees;

Utdata från ovanstående SELECT-fråga är:

ANSTÄLLDA ID FIRST_NAME LAST_NAME LÖN STAD AVDELNING 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 TESTER 4
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3
4003 RUCHIKA AGARWAL 60 000 DELHI ORACLE 1
5001 ARCHIT SHARMA 55500 DELHI TESTER 4
5002 SANKET CHAUHAN 70 000 HYDERABAD JAVA 3
5003 ROSHAN NEHTE 48500 CHANDIGARH C# 5
6001 RAHUL NIKAM 54500 BANGALORE TESTER 4
6002 ATISH JADHAV 60500 BANGALORE C# 5
6003 NIKITA INGALE 65 000 HYDERABAD ORACLE 1

Steg 4:Vi är redo att använda GROUP BY-satsen i frågorna

Vi kommer nu att göra en djupdykning i GROUP BY-satsen med hjälp av exempel

Exempel 1: Skriv en fråga för att visa personalposterna grupperade efter stad.

SELECT * FROM EMPLOYEES GROUP BY CITY;

Ovanstående fråga visar de anställdas register där en anställd från samma stad kommer att betraktas som en grupp. Till exempel, om det finns 10 anställda poster i tabellen där 3 är från Pune city, 3 är från Mumbai city, 2 är från Hyderabad och Bangalore, då kommer ovanstående fråga att gruppera Pune city anställd Mumbai city anställd som en post, och så vidare .

Utdata från ovanstående fråga:

ANSTÄLLDA ID FIRST_NAME LAST_NAME LÖN STAD AVDELNING MANAGERID
6001 RAHUL NIKAM 54500 BANGALORE TESTER 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 att de anställdas poster är grupperade efter stad, och poster visas i stigande ordning som standard.

Exempel 2: Skriv en fråga för att visa anställdas poster grupperade efter lön i fallande ordning.

SELECT * FROM EMPLOYEES GROUP BY SALARY DESC; 

Ovanstående fråga visar de anställdas poster där anställda med samma lön kommer att betraktas som en grupp, och poster kommer att visas i fallande ordning.

Utdata från ovanstående fråga:

ANSTÄLLDA ID FIRST_NAME LAST_NAME LÖN STAD AVDELNING 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 TESTER 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 är de anställdas poster grupperade efter lön, och poster visas i fallande ordning, som vi nämner desc i slutet.

Exempel 3: Skriv en fråga för att visa anställdas uppgifter grupperade efter lön och stad.

SELECT * FROM EMPLOYEES GROUP BY SALARY, CITY;

Frågan ovan visar de anställdas register där anställda med samma lön och stad kommer att betraktas som en grupp.

Anta till exempel att tabellen hade 10 anställdas poster. Från 10 anställda 2 anställdas lön och stad matchar med andra två anställda och resten sex anställda lön och stad är omatchad då de 6 anställda kommer att betraktas som 6 separata grupper, och 2 anställda som matchar med andra 2 anställda kommer att betraktas som en grupp . Kort sagt, 8 grupper kommer att bildas.

Utdata från ovanstående fråga:

ANSTÄLLDA ID FIRST_NAME LAST_NAME LÖN STAD AVDELNING 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 TESTER 4
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1
5001 ARCHIT SHARMA 55500 DELHI TESTER 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 TESTER 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 är de anställdas poster grupperade efter lön och stad, och poster visas i stigande ordning som standard.

Exempel 4: Skriv en fråga för att visa anställdas uppgifter efter stad och avdelning.

SELECT * FROM EMPLOYEES GROUP BY CITY, DEPARTMENT;

Frågan ovan visar de anställdas poster där anställda är i samma stad och avdelningen kommer att betraktas som en grupp.

Utdata från ovanstående fråga:

ANSTÄLLDA ID FIRST_NAME LAST_NAME LÖN STAD AVDELNING MANAGERID
6002 ATISH JADHAV 60500 BANGALORE C# 5
6001 RAHUL NIKAM 54500 BANGALORE TESTER 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 TESTER 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 TESTER 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 är de anställdas poster grupperade efter stad och avdelning, och poster visas i stigande ordning som standard.

Exempel 5: Skriv en fråga för att räkna listan över anställda på varje avdelning från de anställdas tabell.

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

Ovanstående fråga visar antalet anställda i varje avdelningsgrupp per avdelning. Som sex anställda arbetar på HR-avdelningen, fem arbetar på en annan avdelning.

Utdata från ovanstående fråga:

AVDELNING ANTAL(AVDELNING)
C# 4
FMW 3
JAVA 4
ORACLE 4
TESTER 3

Som vi kan se arbetar fyra anställda i C#-avdelningen, tre arbetar på FMW-avdelningen, etc.

Exempel 6: Skriv en fråga för att räkna listan över anställda från varje stad från de anställdas tabell.

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

Ovanstående fråga visar antalet anställda i varje stad grupp efter stad. Som tre anställda arbetar från Pune stad, fyra arbetar från en annan stad, och så vidare.

Utdata från ovanstående fråga:

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

Som vi kan se arbetar två anställda från Bangalore city, tre verk från Mumbai city, och så vidare.

Exempel 7: Skriv en fråga för att summera de anställdas lönegrupp efter staden.

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

Ovanstående används för att summera de anställdas löner grupperade efter ortsnamn. Till exempel, för anställda från samma stad, kommer deras lön att vara summan och betraktas som en grupp. Vi använde funktionen sammanlagd summa följt av lönekolumnen för att lägga till lön.

Utdata från ovanstående fråga:

STAD LÖN
BANGALORE 115 000
CHANDIGARH 104000
DELHI 115500
HYDERABAD 135 000
JAIPUR 101 000
MUMBAI 169000
NOIDA 114500
PUNE 186500

Som vi kan se, är Bangalore stads summa lön 115 000, Chandigarh stads summa lön är 104 000 vilket är tillägget av olika anställdas löner, men från staden används samma tillvägagångssätt för varje stad.

Exempel 8: Skriv en fråga för att hitta minimilönen från varje avdelning.

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

Ovanstående fråga används för att hitta den anställdes minimilön från varje avdelning. En av de anställda från Javaavdelningens lön är 54500, vilket är den lägsta i över hela javaavdelningen. Samma 48500 är den lägsta lönen som betalas ut till den anställde på C#-avdelningen.

Utdata från ovanstående fråga:

AVDELNING MIN(LÖN)
C# 48500
FMW 50500
JAVA 54500
ORACLE 55500
TESTER 54500

Som vi kan se är 50500 den lägsta lönen som betalas ut till en av de anställda på FMW-avdelningen, 55500 är den lägsta lönen som betalas ut till en av de anställda på ORACLE-avdelningen.

Exempel 9: Skriv en fråga för att hitta minimilönen från varje stad.

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

Ovanstående fråga används för att hitta maxlönen från varje stad. En av de anställda från Pune City-lönen är 65500 vilket är den högsta i hela Pune City, samma 60500 är den högsta lönen som betalas ut till den anställde i Mumbai City.

Utdata från ovanstående fråga:

STAD 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 är 50 500 den högsta lönen som betalas ut till en av de anställda i staden Jaipur, 55 500 är den högsta lönen som betalas ut till en av de anställda i staden Chandigarh.


  1. SQL-fråga för att få aggregerade resultat i kommaavgränsare tillsammans med grupp för kolumn i SQL Server

  2. Hur man beräknar rang i MySQL

  3. Hur stänger man inaktiva anslutningar i PostgreSQL automatiskt?

  4. Kommer UUID som primärnyckel i PostgreSQL att ge dålig indexprestanda?