sql >> Databasteknik >  >> RDS >> Database

GROUP BY vs ORDER BY

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.


  1. Migrera databas från Postgres till MySQL

  2. Hur man får återställningsmodellen för en databas i SQL Server med T-SQL

  3. Syntax för for-loop i SQL Server

  4. Hur man tar bort en databas i cPanel