Quando è presente una grande quantità di dati, spesso vediamo la possibilità di manipolare i dati in base alle nostre esigenze. La clausola GROUP BY è una di queste istruzioni in SQL, utilizzata per raggruppare i dati in base a poche colonne oa condizioni. In questo articolo sull'istruzione SQL GROUP BY, discuterò alcuni modi per utilizzare le istruzioni GROUP BY nella seguente sequenza:
- Dichiarazione GROUP BY
- Sintassi
- Esempi:
- Utilizza GROUP BY su una singola colonna
- GRUPPO PER su più colonne
- Utilizzare GROUP BY con ORDER BY
- GRUPPO PER con clausola HAVING
- Utilizza GROUP BY con JOINS
Prima di passare agli esempi su come utilizzare la clausola GROUP BY, cerchiamo di capire cos'è GROUP BY in SQL e la sua sintassi.
Istruzione SQL GROUP BY
Questa istruzione viene utilizzata per raggruppare record con gli stessi valori. L'istruzione GROUP BY viene spesso utilizzata con le funzioni di aggregazione per raggruppare i risultati in base a una o più colonne. Oltre a questo, la clausola GROUP BY viene utilizzata anche con la clausola HAVING e JOINS per raggruppare il set di risultati in base alle condizioni.
SQL GROUP BY sintassi
SELECT Column1, Column2,..., ColumnN FROM TableName WHERE Condition GROUP BY ColumnName(s) ORDER BY ColumnName(s);
Qui puoi aggiungere le funzioni aggregate prima dei nomi delle colonne e anche una clausola HAVING alla fine dell'istruzione per menzionare una condizione. Successivamente, in questo articolo su SQL GROUP BY, cerchiamo di capire come implementare questa affermazione.
Esempi:
Per una migliore comprensione, ho diviso gli esempi nelle seguenti sezioni:
- Utilizza GROUP BY su una singola colonna
- GRUPPO PER su più colonne
- Utilizzare GROUP BY con ORDER BY
- GRUPPO PER con clausola HAVING
- Utilizza GROUP BY con JOINS
Prenderò in considerazione la seguente tabella per spiegarti gli esempi:
EmpID | EmpName | EmpEmail | Numero di telefono | Stipendio | Città |
1 | Nidhi | 9955669999 | 50000 | Mumbai | |
2 | Sì | 9875679861 | 55000 | Pune | |
3 | Rahul | 9876543212 | 35000 | Delhi | |
4 | Sonia | 9876543234 | 35000 | Delhi | |
5 | Akash | 9866865686 | 25000 | Mumbai |
Diamo un'occhiata a ciascuno di essi.
Utilizza SQL GROUP BY su una singola colonna
Esempio:
Scrivi una query per recuperare il numero di dipendenti in ogni città.
SELECT COUNT(EmpID), City FROM Employees GROUP BY City;
Risultato:
Vedrai il seguente output:
Count(EmpID) | Città |
2 | Delhi |
2 | Mumbai |
1 | Pune |
Utilizza SQL GROUP BY su più colonne
Esempio:
Scrivi una query per recuperare il numero di dipendenti con stipendi diversi in ogni città.
SELECT City, Salary, Count(*) FROM Employees GROUP BY City, Salary;
Risultato:
La tabella conterrà i seguenti dati:
Città | Stipendio | Conte(*) |
Delhi | 35000 | 2 |
Mumbai | 25000 | 1 |
Mumbai | 50000 | 1 |
Pune | 55000 | 1 |
Utilizza SQL GROUP BY con ORDER BY
Quando utilizziamo l'istruzione SQL GROUP BY con la clausola ORDER BY, i valori vengono ordinati in ordine crescente o decrescente.
Esempio:
Scrivi una query per recuperare il numero di dipendenti in ciascuna città, in ordine decrescente.
SELECT COUNT(EmpID), City FROM Employees GROUP BY City ORDER BY COUNT(EmpID) DESC;
Risultato:
La tabella conterrà i seguenti dati:
Count(EmpID) | Città |
2 | Delhi |
2 | Mumbai |
1 | Pune |
Utilizza SQL GROUP BY con la clausola HAVING
L'istruzione SQL GROUP BY viene utilizzata con la clausola 'HAVING' per menzionare le condizioni sui gruppi. Inoltre, poiché non possiamo utilizzare le funzioni aggregate con la clausola WHERE, dobbiamo utilizzare la clausola "HAVING" per utilizzare le funzioni aggregate con GROUP BY.
Esempio:
Scrivi una query per recuperare il numero di dipendenti in ogni città, con stipendio> 15000
SELECT COUNT(EmpID), City FROM Employees GROUP BY City HAVING SALARY > 15000;
Risultato:
Poiché tutti i record nella tabella Impiegato hanno uno stipendio> 15000, vedremo come output la seguente tabella:
Count(EmpID) | Città |
2 | Delhi |
2 | Mumbai |
1 | Pune |
Utilizza GROUP BY con JOINS
JOINS sono istruzioni SQL utilizzate per combinare righe di due o più tabelle, in base a una colonna correlata tra quelle tabelle. Possiamo usare l'istruzione SQL GROUP BY per raggruppare il set di risultati in base a una colonna/colonne. Considera le tabelle seguenti per eseguire le istruzioni JOIN con la clausola SQL GROUP BY.
Tabella Progetti:
ID progetto | EmpID | ClientID | Data progetto |
2345 | 1 | 4 | 26-01-2019 |
9876 | 2 | 5 | 28-02-2019 |
3456 | 3 | 6 | 12-03-2019 |
Tabella Clienti:
ClientID | ClientName |
4 | Sanjana |
5 | Rohan |
6 | Arun |
Esempio
Scrivi una query per elencare il numero di progetti richiesti da ciascun cliente:
SELECT Clients.ClientName, COUNT(Projects.ProjectID) AS RequestedProjects FROM Projects LEFT JOIN Clients ON Projects.ProjectID = Clients.ProjectID GROUP BY ClientName;
Risultato:
La tabella conterrà i seguenti dati:
ClientName | Progetti richiesti |
Arun | 1 |
Rohan | 1 |
Sanjana | 1 |
Con questo, arriviamo alla fine dell'articolo SQL GROUP BY. Dai un'occhiata a questo Formazione per la certificazione DBA MySQL di Edureka, una società di formazione online affidabile con una rete di di oltre 250.000 studenti soddisfatti sparsi in tutto il mondo. Questo corso ti insegna i concetti fondamentali e gli strumenti e le tecniche avanzati per gestire i dati e amministrare il database MySQL. Include l'apprendimento pratico su concetti come MySQL Workbench, MySQL Server, Data Modeling, MySQL Connector, Database Design, MySQL Command line, MySQL Functions, ecc. Alla fine della formazione sarai in grado di creare e amministrare il tuo database MySQL e gestire i dati.
Hai una domanda per noi? Si prega di menzionarlo nella sezione commenti di questo articolo "SQL GROUP BY" e ti risponderemo il prima possibile.