Riepilogo :in questo tutorial imparerai come usare SQLite GROUP BY clausola per creare un insieme di righe di riepilogo da un insieme di righe.
Introduzione a SQLite GROUP BY clausola
Il GROUP BY è una clausola facoltativa di SELECT dichiarazione. Il GROUP BY claudi un gruppo selezionato di righe in righe di riepilogo in base ai valori di una o più colonne.
Il GROUP BY la clausola restituisce una riga per ogni gruppo. Per ogni gruppo, puoi applicare una funzione aggregata come MIN , MAX , SUM , COUNT o AVG per fornire maggiori informazioni su ciascun gruppo.
La seguente istruzione illustra la sintassi di SQLite GROUP BY clausola.
SELECT
column_1,
aggregate_function(column_2)
FROM
table
GROUP BY
column_1,
column_2;
Code language: SQL (Structured Query Language) (sql) Provalo
Il GROUP BY la clausola viene dopo il FROM clausola del SELECT dichiarazione. Nel caso in cui un'istruzione contenga un WHERE clausola, il GROUP BY la clausola deve venire dopo il WHERE clausola.
Di seguito il GROUP BY La clausola è una colonna o un elenco di colonne separate da virgole utilizzate per specificare il gruppo.
SQLite GROUP BY esempi
Usiamo i tracks tabella dal database di esempio per la dimostrazione.
SQLite GROUP BY clausola con COUNT funzione
La seguente istruzione restituisce l'ID dell'album e il numero di brani per album. Utilizza il GROUP BY clausola per raggruppare le tracce per album e applica il COUNT() funzione a ciascun gruppo.
SELECT
albumid,
COUNT(trackid)
FROM
tracks
GROUP BY
albumid;Code language: SQL (Structured Query Language) (sql) Provalo
Puoi utilizzare il ORDER BY clausola per ordinare i gruppi come segue:
SELECT
albumid,
COUNT(trackid)
FROM
tracks
GROUP BY
albumid
ORDER BY COUNT(trackid) DESC;Code language: SQL (Structured Query Language) (sql) Provalo
SQLite GROUP BY e INNER JOIN clausola
Puoi eseguire query sui dati da più tabelle utilizzando INNER JOIN clausola, quindi utilizzare il GROUP BY clausola per raggruppare le righe in un insieme di righe di riepilogo.
Ad esempio, la seguente istruzione si unisce alle tracks tabella con gli albums tabella per ottenere i titoli dell'album e utilizza il GROUP BY clausola con il COUNT funzione per ottenere il numero di brani per album.

SELECT
tracks.albumid,
title,
COUNT(trackid)
FROM
tracks
INNER JOIN albums ON albums.albumid = tracks.albumid
GROUP BY
tracks.albumid;Code language: SQL (Structured Query Language) (sql) Provalo
SQLite GROUP BY con HAVING clausola
Per filtrare i gruppi, usa il GROUP BY con HAVING clausola. Ad esempio, per ottenere gli album con più di 15 tracce, utilizza la seguente istruzione:
SELECT
tracks.albumid,
title,
COUNT(trackid)
FROM
tracks
INNER JOIN albums ON albums.albumid = tracks.albumid
GROUP BY
tracks.albumid
HAVING COUNT(trackid) > 15;Code language: SQL (Structured Query Language) (sql) Provalo
SQLite GROUP BY clausola con SUM esempio di funzione
Puoi utilizzare il SUM funzione per calcolare il totale per gruppo. Ad esempio, per ottenere la lunghezza totale e i byte per ciascun album, utilizza il SUM funzione per calcolare millisecondi e byte totali.
SELECT
albumid,
SUM(milliseconds) length,
SUM(bytes) size
FROM
tracks
GROUP BY
albumid;Code language: SQL (Structured Query Language) (sql) Provalo
SQLite GROUP BY con MAX , MIN e AVG funzioni
La seguente istruzione restituisce l'ID dell'album, il titolo dell'album, la lunghezza massima, la lunghezza minima e la durata media delle tracce nei tracks tabella.
SELECT
tracks.albumid,
title,
min(milliseconds),
max(milliseconds),
round(avg(milliseconds),2)
FROM
tracks
INNER JOIN albums ON albums.albumid = tracks.albumid
GROUP BY
tracks.albumid;Code language: SQL (Structured Query Language) (sql) Provalo
SQLite GROUP BY esempio di più colonne
Nell'esempio precedente, abbiamo utilizzato una colonna in GROUP BY clausola. SQLite ti consente di raggruppare le righe per più colonne.
Ad esempio, per raggruppare i brani in base al tipo di supporto e al genere, utilizzare la seguente istruzione:
SELECT
MediaTypeId,
GenreId,
COUNT(TrackId)
FROM
tracks
GROUP BY
MediaTypeId,
GenreId;Code language: SQL (Structured Query Language) (sql) Provalo
SQLite utilizza la combinazione di valori di MediaTypeId e GenreId colonne come un gruppo, ad esempio (1,1) e (1,2). Quindi applica il COUNT funzione per restituire il numero di tracce in ogni gruppo.
SQLite GROUP BY esempio di data
Vedere la seguente tabella fatture dal database di esempio:
La seguente dichiarazione restituisce il numero di fattura per anni.
SELECT
STRFTIME('%Y', InvoiceDate) InvoiceYear,
COUNT(InvoiceId) InvoiceCount
FROM
invoices
GROUP BY
STRFTIME('%Y', InvoiceDate)
ORDER BY
InvoiceYear;Code language: SQL (Structured Query Language) (sql) Ecco l'output:
In questo esempio:
- La funzione
STRFTIME('%Y', InvoiceDate)restituisce un anno da una stringa di data. - Il
GROUP BYla clausola raggruppa le fatture per anni. - La funzione
COUNT()restituisce il numero di fattura in ogni anno (o gruppo).
In questo tutorial, hai imparato a usare SQLite GROUP BY clausola per raggruppare le righe in un insieme di righe di riepilogo.