SQLite
 sql >> Database >  >> RDS >> SQLite

SQLite COUNT

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, il COUNT() la funzione conta tutti i valori non nulli includono i duplicati. Il COUNT() la funzione utilizza il ALL opzione per impostazione predefinita se la salti.
  • DISTINCT :se utilizzi esplicitamente il DISTINCT opzione, il COUNT 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(*)
--------
3503Code 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(*) > 25Code 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.