Riepilogo :in questo tutorial imparerai come usare SQLite COUNT
funzione per ottenere il numero di elementi in un gruppo.
Introduzione a SQLite COUNT()
funzione
La funzione COUNT()
è una funzione aggregata che restituisce il numero di elementi in un gruppo.
Ad esempio, puoi utilizzare COUNT()
funzione per ottenere il numero di tracce dalle tracks
tabella, il numero di artisti da artists
tabella e così via.
Di seguito viene illustrata la sintassi di base di COUNT
funzione:
COUNT([ALL | DISTINCT] expression);
Code language: SQL (Structured Query Language) (sql)
Argomenti
Il COUNT
La funzione si comporta in base agli argomenti che ci vengono passati e all'opzione ALL
o DISTINCT
che specifichi.
Quanto segue descrive i significati di ALL
e DISTINCT
opzioni:
ALL
:quando specifichi tutto, ilCOUNT()
la funzione conta tutti i valori non nulli includono i duplicati. IlCOUNT()
la funzione utilizza ilALL
opzione per impostazione predefinita se la salti.DISTINCT
:se utilizzi esplicitamente ilDISTINCT
opzione, ilCOUNT
la funzione conta solo valori univoci e non nulli.
L'espressione può essere una colonna o un'espressione che coinvolge colonne a cui è associata la funzione COUNT()
viene applicato.
SQLite fornisce un'altra sintassi di COUNT()
funzione:
COUNT(*)
Code language: SQL (Structured Query Language) (sql)
Il COUNT(*)
La funzione restituisce il numero di righe in una tabella, incluse le righe che includono NULL e duplicati.
SQLite COUNT()
illustrazione della funzione
Per prima cosa, crea una tabella chiamata t1
che ha una colonna:
CREATE TABLE t1(c INTEGER);
Code language: SQL (Structured Query Language) (sql)
In secondo luogo, inserisci cinque righe nel t1
tabella:
INSERT INTO t1(c)
VALUES(1),(2),(3),(null),(3);
Code language: SQL (Structured Query Language) (sql)
Terzo, interroga i dati da t1
tabella:
SELECT * FROM t1;
Code language: SQL (Structured Query Language) (sql)
In quarto luogo, usa il COUNT(*)
funzione per restituire il numero di righe nel t1
tabella:
SELECT COUNT(*) FROM t1;
Code language: SQL (Structured Query Language) (sql)
Come puoi vedere chiaramente dall'output, il set di risultati include NULL e righe duplicate.
In quinto luogo, usa COUNT(expression)
per ottenere il numero di valori non nulli nella colonna c
:
SELECT COUNT(c) FROM t1;
Code language: SQL (Structured Query Language) (sql)
In questo esempio, il COUNT(c)
restituisce il numero di valori non nulli. Conta le righe duplicate come righe separate.
Sesto, usa il COUNT(DISTINCT expression)
per ottenere il numero di valori univoci e non nulli nella colonna c
:
SELECT COUNT(DISTINCT c) FROM t1;
Code language: SQL (Structured Query Language) (sql)
SQLite COUNT(*)
esempi
Prenderemo il tavolo tracks
nel database di esempio per dimostrare la funzionalità di COUNT(*)
funzione.
1) SQLite COUNT(*)
esempio
Per ottenere il numero di righe dalle tracks
tabella, utilizzi il COUNT(*)
funzionano come segue:
SELECT count(*)
FROM tracks;
Code language: SQL (Structured Query Language) (sql)
Provalo
count(*)
--------
3503
Code language: plaintext (plaintext)
2) SQLite COUNT(*)
con WHERE
esempio di clausola
La seguente istruzione utilizza il COUNT(*)
funzione con un WHERE
clausola per trovare il numero di tracce il cui ID album è 10:
SELECT COUNT(*)
FROM tracks
WHERE albumid = 10;
Code language: SQL (Structured Query Language) (sql)
Provalo
COUNT(*)
--------
14
3) SQLite COUNT(*)
con GROUP BY
esempio di clausola
Per ottenere tutti gli album e il numero di brani in ogni album, unisci il COUNT(*)
funzione con il GROUP BY
clausola:
SELECT
albumid,
COUNT(*)
FROM
tracks
GROUP BY
albumid;
Code language: SQL (Structured Query Language) (sql)
Provalo
AlbumId COUNT(*)
------- --------
1 10
2 1
3 3
4 8
5 15
6 13
7 12
8 14
9 8
10 14
...
In questo esempio:
- In primo luogo, il
GROUP BY
clausola raggruppa le tracce per ID album. - Quindi, il
COUNT(*)
la funzione restituisce il numero di brani per ciascun album o gruppo di brani.
4) SQLite COUNT(*)
con HAVING
esempio di clausola
Quanto segue usa il COUNT(*)
nel HAVING
clausola per trovare album con più di 25 tracce:
SELECT
albumid,
COUNT(*)
FROM
tracks
GROUP BY
albumid
HAVING COUNT(*) > 25
Code language: SQL (Structured Query Language) (sql)
Provalo
AlbumId COUNT(*)
------- --------
23 34
73 30
141 57
229 26
5) SQLite COUNT(*)
con INNER JOIN
esempio di clausola
Per rendere più utile l'output della query precedente, puoi includere la colonna del nome dell'album. Per fare ciò, aggiungi INNER JOIN
e ORDER BY
clausole alla query come la seguente query:
SELECT
tracks.albumid,
title,
COUNT(*)
FROM
tracks
INNER JOIN albums ON
albums.albumid = tracks.albumid
GROUP BY
tracks.albumid
HAVING
COUNT(*) > 25
ORDER BY
COUNT(*) DESC;
Code language: SQL (Structured Query Language) (sql)
Provalo
AlbumId Title COUNT(*)
------- -------------- --------
141 Greatest Hits 57
23 Minha Historia 34
73 Unplugged 30
229 Lost, Season 3 26
SQLite COUNT(DISTINCT expression)
esempi
Diamo un'occhiata ai employees
tabella dal database di esempio.
SELECT
employeeid,
lastname,
firstname,
title
FROM
employees;
Code language: SQL (Structured Query Language) (sql)
Provalo
EmployeeId LastName FirstName Title
---------- -------- --------- -------------------
1 Adams Andrew General Manager
2 Edwards Nancy Sales Manager
3 Peacock Jane Sales Support Agent
4 Park Margaret Sales Support Agent
5 Johnson Steve Sales Support Agent
6 Mitchell Michael IT Manager
7 King Robert IT Staff
8 Callahan Laura IT Staff
Per ottenere il numero di titoli di posizione, devi passare il title
colonna al COUNT()
funzionano come segue:
SELECT COUNT(title)
FROM employees;
Code language: SQL (Structured Query Language) (sql)
Provalo
COUNT(title)
------------
8
Tuttavia, per ottenere il numero di titoli univoci, devi aggiungere il DISTINCT
opzione per COUNT()
funzione come mostrato nella seguente istruzione:
SELECT COUNT(DISTINCT title)
FROM employees;
Code language: SQL (Structured Query Language) (sql)
Provalo
COUNT(DISTINCT title)
---------------------
5
In questo tutorial, ti abbiamo mostrato come utilizzare SQLite COUNT()
funzione per contare il numero di elementi in un gruppo.