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.