English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Frase GROUP BY di SQLite

SQLite GROUP BY La clausola viene utilizzata insieme alla query SELECT per raggruppare dati simili.

La clausola GROUP BY è posizionata dopo la clausola WHERE della query SELECT e prima della clausola ORDER BY.

Sintassi

Ecco la sintassi di base della clausola GROUP BY. La clausola GROUP BY deve seguire le condizioni della clausola WHERE e, se viene utilizzata la clausola ORDER BY, deve essere preceduta da essa.

SELECT column-list
FROM table_name
WHERE [condizioni]
GROUP BY column1, column2....columnN
ORDER BY column1, column2....columnN

Puoi utilizzare più colonne nella clausola GROUP BY. Assicurati che qualsiasi colonna da utilizzare per il raggruppamento sia disponibile nel column-list.

Esempio online

Considera la tabella COMPANY con i seguenti record.

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32         California  20000.0
2           Allen       25         Texas       15000.0
3           Teddy       23         Norway      20000.0
4           Mark        25         Rich-Mond   65000.0
5           David       27         Texas       85000.0
6           Kim         22         South-Hall  45000.0
7           James       24         Houston     10000.0

Se desideri sapere la somma totale di stipendi di ogni cliente, la query GROUP BY sarà come segue-

sqlite> SELECT NAME, SUM(SALARY) FROM COMPANY GROUP BY NAME;

Risultato di output:

NAME        SUM(SALARY)
----------  -----------
Allen 15000.0
David 85000.0
James 10000.0
Kim 45000.0
Mark 65000.0
Paul 20000.0
Teddy 20000.0

Ora, utilizziamo le seguenti istruzioni INSERT per creare ulteriori tre record nella tabella COMPANY.

INSERT INTO COMPANY VALUES (8, 'Paul', 24, 'Houston', 20000.00);
INSERT INTO COMPANY VALUES (9, 'James', 44, 'Norway', 5000.00);
INSERT INTO COMPANY VALUES (10, 'James', 45, 'Texas', 5000.00);

Ora, la nostra tabella contiene record con nomi duplicati.

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32         California  20000.0
2           Allen       25         Texas       15000.0
3           Teddy       23         Norway      20000.0
4           Mark        25         Rich-Mond   65000.0
5           David       27         Texas       85000.0
6           Kim         22         South-Hall  45000.0
7           James       24         Houston     10000.0
8           Paul        24         Houston     20000.0
9           James       44         Norway      5000.0
10         James       45         Texas       5000.0

Ancora una volta, usiamo la stessa espressione per raggruppare tutti i record per la colonna NAME, come segue:

sqlite> SELECT NAME, SUM(SALARY) FROM COMPANY GROUP BY NAME ORDER BY NAME;

Questo produrrà i seguenti risultati.

NAME        SUM(SALARY)
----------  -----------
Allen       15000
David       85000
James       20000
Kim         45000
Mark        65000
Paul        40000
Teddy       20000

Lasciamo che usiamo le clausole ORDER BY e GROUP BY come segue-

sqlite> SELECT NAME, SUM(SALARY) 
   FROM COMPANY GROUP BY NAME ORDER BY NAME DESC;

Questo produrrà i seguenti risultati.

NAME        SUM(SALARY)
----------  -----------
Teddy       20000
Paul        40000
Mark        65000
Kim         45000
James       20000
David       85000
Allen       15000