GROUP BY-satsen och ORDER BY-satsen i SQL används för att ordna data som erhålls av SQL-frågor. Den viktiga skillnaden mellan GROUP BY-satsen och ORDER BY-satsen är att GROUP BY-satsen tillämpas när vi vill använda en aggregatfunktion i SQL-frågan på mer än en uppsättning rader. Däremot tillämpas ORDER BY-satsen när vi vill ta emot data som erhålls av frågan i sorterad ordning. Innan vi går mot jämförelsediagram kommer vi först att förstå dessa SQL-satser.
GROUP BY Klausul
GROUP BY-satsen i SQL använder frågor för att ordna data inom attributvärden. Vanligtvis använder vi GROUP BY-satsen med SELECT-satsen. Vi måste alltid placera GROUP BY-satsen efter WHERE-satsen. Dessutom taktas den också före ORDER BY-satsen.
Vi kan ofta använda GROUP BY-satsen med aggregerade funktioner som SUM, AVG, MIN, MAX och COUNT för att producera utdata från databasen. Frågan för GROUP BY-satsen är en grupperad fråga, och den returnerar en enda rad för varje grupperat objekt.
Nedan finns syntaxen för att använda GROUP BY-satsen i en SQL-fråga
SELECT COLUMNNAME, FUNCTION(COLUMNNAME) FROM TABLENAME WHERE CONDITION GROUP BY COLUMNNAME;
Låt oss förstå GROUP BY-satsen med hjälp av några exempel. Betrakta följande tabeller tillsammans med de givna posterna.
Tabell:Anställda
ANSTÄLLDA ID | FIRST_NAME | LAST_NAME | LÖN | STAD | AVDELNING | MANAGERID | ARBETA_TIMMAR | KÖN |
1001 | VAIBHAVI | MISHRA | 65 000 | PUNE | ORACLE | 1 | 12 | F |
1002 | VAIBHAV | SHARMA | 60 000 | NOIDA | ORACLE | 1 | 9 | M |
1003 | NIKHIL | VANI | 50 000 | JAIPUR | FMW | 2 | 10 | M |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORACLE | 1 | 10 | F |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW | 2 | 12 | M |
2003 | RUCHIKA | JAIN | 50 000 | MUMBAI | TESTER | 4 | 9 | F |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA | 3 | 9 | F |
3002 | ANUJA | VAR | 50500 | JAIPUR | FMW | 2 | 9 | F |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA | 3 | 12 | M |
4001 | RAJESH | GOUD | 60500 | MUMBAI | TESTER | 4 | 10 | M |
Exempel 1: Anta att vi vill veta anställdas lön i en viss stad för ovanstående data. För att göra detta kommer vi att utföra följande fråga enligt följande:
SELECT CITY, SUM(SALARY) FROM EMPLOYEES GROUP BY CITY;
Denna fråga bildade initialt ett resultat som har grupperat staden. Därefter SUMMA funktion utförs på varje grupp av städer, och slutligen kommer vi att få de önskade resultaten som visas nedan:
Exempel 2: Anta att vi vill veta anställdas maxlön på en viss avdelning för ovanstående data. För att göra detta kommer vi att utföra följande fråga enligt följande:
SELECT DEPARTMENT, MAX(SALARY) FROM EMPLOYEES GROUP BY DEPARTMENT;
Denna fråga bildade initialt ett resultat som har grupperat avdelningen. Därefter MAX funktion utförs på varje grupp av avdelningen, och slutligen kommer vi att få de önskade resultaten enligt nedan:
ORDER BY Klausul
GROUP BY-satsen och ORDER BY-satsen skulle kunna användas med SELECT-satsen. I SQL-frågor använde vi ORDER BY-satsen för att sortera posterna som returneras av frågan i stigande eller fallande ordning. Om vi inte nämnde sorteringsordningen skulle hela resultatet sorteras som standard i stigande ordning.
Nedan finns syntaxen för att använda ORDER BY-satsen i en SQL-fråga
SELECT * FROM TABLENAME ORDER BY [ASC | DESC];
Låt oss förstå ORDER BY-satsen med hjälp av några exempel. Betrakta följande tabeller tillsammans med de givna posterna.
Tabell:Anställda
ANSTÄLLDA ID | FIRST_NAME | LAST_NAME | LÖN | STAD | AVDELNING | MANAGERID | ARBETA_TIMMAR | KÖN |
1001 | VAIBHAVI | MISHRA | 65 000 | PUNE | ORACLE | 1 | 12 | F |
1002 | VAIBHAV | SHARMA | 60 000 | NOIDA | ORACLE | 1 | 9 | M |
1003 | NIKHIL | VANI | 50 000 | JAIPUR | FMW | 2 | 10 | M |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORACLE | 1 | 10 | F |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW | 2 | 12 | M |
2003 | RUCHIKA | JAIN | 50 000 | MUMBAI | TESTER | 4 | 9 | F |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA | 3 | 9 | F |
3002 | ANUJA | VAR | 50500 | JAIPUR | FMW | 2 | 9 | F |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA | 3 | 12 | M |
4001 | RAJESH | GOUD | 60500 | MUMBAI | TESTER | 4 | 10 | M |
Exempel 1: Anta att vi vill ordna resultatet i sorterad ordning, antingen stigande eller fallande, baserat på kolumnen för förnamn. I så fall skulle vi vilja använda ORDER BY-satsen för att få resultatet. För att göra detta kommer vi att utföra följande fråga enligt följande:
SELECT * FROM EMPLOYEES ORDER BY FIRST_NAME ASC;
Nyckelskillnad mellan GROUP BY och ORDER BY
Följande är de punkter som skiljer mellan GROUP BY- och ORDER BY-satserna:
- GROUP BY-satsen i SQL används för att gruppera posterna baserat på ett liknande värde i en viss kolumn. Å andra sidan används ORDER BY-satsen i SQL för att sortera visningsresultaten i stigande eller fallande ordning.
- När du utför en fråga med GROUP BY-satsen i SQL-frågan, är det obligatoriskt att använda aggregatfunktionen. Å andra sidan, när du använder ORDER BY-satsen i SQ, är det inte obligatoriskt att använda en aggregerad funktion.
- GROUP BY-satsen placeras alltid i SQL-frågan efter WHERE-satsen men före ORDER BY-satsen. Å andra sidan placeras alltid ORDER BY-satsen efter GROUP BY-satsen.
Jämförelsediagram
SR.NO | GRUPPER EFTER | BESTÄLL EFTER |
1 | GROUP BY-satsen används för att gruppera raderna med liknande värden. | ORDER BY-satsen används för att sortera resultatet antingen i fallande eller stigande ordning |
2 | Den styr presentationen av rader | Den styr presentationen av kolumner |
3 | GROUP BY-satsen är alltid placerad före ORDER BY-satsen. | ORDER BY-satsen placeras alltid efter GROUP BY-satsen. |
4 | Det är obligatoriskt att använda en aggregerad funktion | Inte obligatoriskt för att använda en aggregerad funktion |
5 | Attributet kan inte vara under aggregatfunktionen | i GROUP BY-satsen. Attributet kan finnas under aggregatfunktionen i ORDER BY-satsen. |