När en stor mängd data finns, ser vi ofta en möjlighet att manipulera data enligt våra krav. GROUP BY-sats är en sådan sats i SQL, som används för att gruppera data baserat på några kolumner eller på villkor. I den här artikeln om SQL GROUP BY-sats kommer jag att diskutera några sätt att använda GROUP BY-satser i följande ordning:
- GROUP BY-sats
- Syntax
- Exempel:
- Använd GROUP BY på en kolumn
- GROUP BY på flera kolumner
- Använd GROUP BY med ORDER BY
- GROUP BY med HAVING-sats
- Använd GROUP BY med JOINS
Innan vi går vidare till exemplen på hur man använder GROUP BY-satsen, låt oss förstå vad som är GROUP BY i SQL och dess syntax.
SQL GROUP BY-sats
Detta uttalande används för att gruppera poster med samma värden. GROUP BY-satsen används ofta med aggregatfunktionerna för att gruppera resultaten efter en eller flera kolumner. Förutom detta används GROUP BY-satsen också med HAVING-satsen och JOINS för att gruppera resultatuppsättningen baserat på villkor.
SQL GROUP BY Syntax
SELECT Column1, Column2,..., ColumnN FROM TableName WHERE Condition GROUP BY ColumnName(s) ORDER BY ColumnName(s);
Här kan du lägga till aggregatfunktionerna före kolumnnamnen, och även en HAVING-sats i slutet av satsen för att nämna ett villkor. Låt oss sedan i den här artikeln om SQL GROUP BY förstå hur man implementerar detta uttalande.
Exempel:
För din bättre förståelse har jag delat upp exemplen i följande avsnitt:
- Använd GROUP BY på en kolumn
- GROUP BY på flera kolumner
- Använd GROUP BY med ORDER BY
- GROUP BY med HAVING-sats
- Använd GROUP BY med JOINS
Jag ska överväga följande tabell för att förklara exemplen för dig:
EmpID | EmpName | EmpE-post | Telefonnummer | Lön | Stad |
1 | Nidhi | 9955669999 | 50 000 | Mumbai | |
2 | Any | 9875679861 | 55 000 | Pune | |
3 | Rahul | 9876543212 | 35 000 | Delhi | |
4 | Sonia | 9876543234 | 35 000 | Delhi | |
5 | Akash | 9866865686 | 25 000 | Mumbai |
Låt oss ta en titt på var och en av dem.
Använd SQL GROUP BY på en kolumn
Exempel:
Skriv en fråga för att hämta antalet anställda i varje stad.
SELECT COUNT(EmpID), City FROM Employees GROUP BY City;
Utdata:
Du kommer att se följande utdata:
Count(EmpID) | Stad |
2 | Delhi |
2 | Mumbai |
1 | Pune |
Använd SQL GROUP BY på flera kolumner
Exempel:
Skriv en fråga för att få fram antalet anställda som har olika löner i varje stad.
SELECT City, Salary, Count(*) FROM Employees GROUP BY City, Salary;
Utdata:
Tabellen kommer att ha följande data:
Stad | Lön | Antal(*) |
Delhi | 35 000 | 2 |
Mumbai | 25 000 | 1 |
Mumbai | 50 000 | 1 |
Pune | 55 000 | 1 |
Använd SQL GROUP BY med ORDER BY
När vi använder SQL GROUP BY-satsen med ORDER BY-satsen, sorteras värdena antingen i stigande eller fallande ordning.
Exempel:
Skriv en fråga för att hämta antalet anställda i varje stad, sorterade i fallande ordning.
SELECT COUNT(EmpID), City FROM Employees GROUP BY City ORDER BY COUNT(EmpID) DESC;
Utdata:
Tabellen kommer att ha följande data:
Count(EmpID) | Stad |
2 | Delhi |
2 | Mumbai |
1 | Pune |
Använd SQL GROUP BY med HAVING-sats
SQL GROUP BY-satsen används med 'HAVING'-satsen för att nämna villkor för grupper. Eftersom vi inte kan använda de aggregerade funktionerna med WHERE-satsen, måste vi använda "HAVING"-satsen för att använda de aggregerade funktionerna med GROUP BY.
Exempel:
Skriv en fråga för att hämta antalet anställda i varje stad, med lön> 15 000
SELECT COUNT(EmpID), City FROM Employees GROUP BY City HAVING SALARY > 15000;
Utdata:
Eftersom alla poster i tabellen Anställd har en lön> 15 000, kommer vi att se följande tabell som utdata:
Count(EmpID) | Stad |
2 | Delhi |
2 | Mumbai |
1 | Pune |
Använd GROUP BY med JOINS
JOINS är SQL-satser som används för att kombinera rader från två eller flera tabeller, baserat på en relaterad kolumn mellan dessa tabeller. Vi kan använda SQL GROUP BY-satsen för att gruppera resultatuppsättningen baserat på en kolumn/kolumner. Överväg nedanstående tabeller för att exekvera JOIN-satserna med SQL GROUP BY-satsen.
Projekttabell:
Projekt-ID | EmpID | Kund-ID | Projektdatum |
2345 | 1 | 4 | 2019-01-26 |
9876 | 2 | 5 | 2019-02-28 |
3456 | 3 | 6 | 12-03-2019 |
Kundtabell:
Klient-ID | Kundnamn |
4 | Sanjana |
5 | Rohan |
6 | Arun |
Exempel
Skriv en fråga för att lista antalet projekt som efterfrågas av varje kund:
SELECT Clients.ClientName, COUNT(Projects.ProjectID) AS RequestedProjects FROM Projects LEFT JOIN Clients ON Projects.ProjectID = Clients.ProjectID GROUP BY ClientName;
Utdata:
Tabellen kommer att ha följande data:
Kundnamn | Begärda projekt |
Arun | 1 |
Rohan | 1 |
Sanjana | 1 |
Med det kommer vi till slutet av SQL GROUP BY-artikeln. Kolla in det här MySQL DBA-certifieringsutbildning av Edureka, ett pålitligt onlineutbildningsföretag med ett nätverk of mer än 250 000 nöjda elever spridda över hela världen. Den här kursen utbildar dig i kärnkoncepten och avancerade verktyg och tekniker för att hantera data och administrera MySQL-databasen. Det inkluderar praktisk inlärning av koncept som MySQL Workbench, MySQL Server, Data Modeling, MySQL Connector, Database Design, MySQL Command line, MySQL Functions, etc. I slutet av utbildningen kommer du att kunna skapa och administrera din egen MySQL-databas och hantera data.
Har du en fråga till oss? Vänligen nämn det i kommentarsfältet i denna "SQL GROUP BY"-artikel så återkommer vi till dig så snart som möjligt.