sql >> Database >  >> RDS >> SQLite

SQLite COUNT

Samenvatting :in deze tutorial leer je hoe je SQLite COUNT . gebruikt functie om het aantal items in een groep te krijgen.

Inleiding tot SQLite COUNT() functie

De functie COUNT() is een aggregatiefunctie die het aantal items in een groep retourneert.

U kunt bijvoorbeeld de COUNT() . gebruiken functie om het aantal tracks uit de tracks . te halen tabel, het aantal artiesten van de artists tafel, enzovoort.

Het volgende illustreert de basissyntaxis van de COUNT functie:

COUNT([ALL | DISTINCT] expression);Code language: SQL (Structured Query Language) (sql)

Argumenten

De COUNT functie gedraagt ​​zich volgens de argumenten die u erin doorgeeft en de optie ALL of DISTINCT die u opgeeft.

Het volgende beschrijft de betekenis van ALL en DISTINCT opties:

  • ALL :wanneer u alles specificeert, de COUNT() functie telt alle niet-null-waarden inclusief duplicaten. De COUNT() functie gebruikt de ALL optie standaard als u deze overslaat.
  • DISTINCT :als je expliciet de DISTINCT . gebruikt optie, de COUNT functie telt alleen unieke en niet-null-waarden.

De uitdrukking kan een kolom zijn of een uitdrukking die kolommen omvat waarvoor de functie COUNT() wordt toegepast.

SQLite biedt een andere syntaxis van de COUNT() functie:

COUNT(*)Code language: SQL (Structured Query Language) (sql)

De COUNT(*) functie retourneert het aantal rijen in een tabel, inclusief de rijen inclusief NULL en duplicaten.

SQLite COUNT() functie illustratie

Maak eerst een tabel met de naam t1 die één kolom heeft:

CREATE TABLE t1(c INTEGER);Code language: SQL (Structured Query Language) (sql)

Ten tweede, voeg vijf rijen in de t1 . in tafel:

INSERT INTO t1(c)
VALUES(1),(2),(3),(null),(3);Code language: SQL (Structured Query Language) (sql)

Ten derde, vraag gegevens op van de t1 tafel:

SELECT * FROM t1;Code language: SQL (Structured Query Language) (sql)

Ten vierde, gebruik de COUNT(*) functie om het aantal rijen in de t1 . te retourneren tafel:

SELECT COUNT(*) FROM t1;Code language: SQL (Structured Query Language) (sql)

Zoals je duidelijk kunt zien aan de uitvoer, bevat de resultatenset NULL en dubbele rijen.

Ten vijfde, gebruik de COUNT(expression) om het aantal niet-null-waarden in de kolom c . te krijgen :

SELECT COUNT(c) FROM t1;Code language: SQL (Structured Query Language) (sql)

In dit voorbeeld is de COUNT(c) geeft het aantal niet-null-waarden terug. Het telt de dubbele rijen als afzonderlijke rijen.

Ten zesde, gebruik de COUNT(DISTINCT expression) om het aantal unieke en niet-null-waarden in kolom c . te krijgen :

SELECT COUNT(DISTINCT c) FROM t1;Code language: SQL (Structured Query Language) (sql)

SQLite COUNT(*) voorbeelden

We nemen de tabel tracks in de voorbeelddatabase om de functionaliteit van de COUNT(*) . te demonstreren functie.

1) SQLite COUNT(*) voorbeeld

Om het aantal rijen uit de tracks te halen tabel, gebruik je de COUNT(*) functioneren als volgt:

SELECT count(*)
FROM tracks;Code language: SQL (Structured Query Language) (sql)

Probeer het

count(*)
--------
3503Code language: plaintext (plaintext)

2) SQLite COUNT(*) met WHERE clausule voorbeeld

De volgende instructie gebruikt de COUNT(*) functie met een WHERE clausule om het aantal nummers te vinden waarvan de album-ID 10 is:

SELECT COUNT(*)
FROM tracks
WHERE albumid = 10;Code language: SQL (Structured Query Language) (sql)

Probeer het

COUNT(*)
--------
14

3) SQLite COUNT(*) met GROUP BY clausule voorbeeld

Om alle albums en het aantal nummers in elk album te krijgen, combineer je de COUNT(*) functie met de GROUP BY clausule:

SELECT
	albumid,
	COUNT(*)
FROM
	tracks
GROUP BY
	albumid;Code language: SQL (Structured Query Language) (sql)

Probeer het

AlbumId  COUNT(*)
-------  --------
1        10
2        1
3        3
4        8
5        15
6        13
7        12
8        14
9        8
10       14
...

In dit voorbeeld:

  • Eerst, de GROUP BY clausule groepeer tracks op album-ID.
  • Vervolgens, de COUNT(*) functie retourneert het aantal tracks voor elk album of groep tracks.

4) SQLite COUNT(*) met HAVING clausule voorbeeld

Het volgende gebruikt de COUNT(*) in de HAVING clausule om albums te vinden met meer dan 25 nummers:

SELECT
   albumid,
   COUNT(*)
FROM
   tracks
GROUP BY
   albumid
HAVING COUNT(*) > 25Code language: SQL (Structured Query Language) (sql)

Probeer het

AlbumId  COUNT(*)
-------  --------
23       34
73       30
141      57
229      26

5) SQLite COUNT(*) met INNER JOIN clausule voorbeeld

Om de uitvoer van de bovenstaande zoekopdracht nuttiger te maken, kunt u de naamkolom van het album opnemen. Om dit te doen, voeg je INNER JOIN . toe en ORDER BY clausules voor de query, zoals de volgende 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)

Probeer het

AlbumId  Title           COUNT(*)
-------  --------------  --------
141      Greatest Hits   57
23       Minha Historia  34
73       Unplugged       30
229      Lost, Season 3  26

SQLite COUNT(DISTINCT expression) voorbeelden

Laten we eens kijken naar de employees tabel uit de voorbeelddatabase.

SELECT
	employeeid,
	lastname,
	firstname,
	title
FROM
	employees;Code language: SQL (Structured Query Language) (sql)

Probeer het

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

Om het aantal positietitels te krijgen, geef je de title . door kolom naar de COUNT() functioneren als volgt:

SELECT COUNT(title)
FROM employees;Code language: SQL (Structured Query Language) (sql)

Probeer het

COUNT(title)
------------
8

Om het aantal unieke titels te krijgen, moet u echter de DISTINCT . toevoegen optie naar de COUNT() functioneren zoals weergegeven in de volgende verklaring:

SELECT COUNT(DISTINCT title)
FROM employees;Code language: SQL (Structured Query Language) (sql)

Probeer het

COUNT(DISTINCT title)
---------------------
5

In deze zelfstudie hebben we u laten zien hoe u SQLite COUNT() . gebruikt functie om het aantal items in een groep te tellen.


  1. Hoe items uit de sqlite-database te verwijderen met de SQLiteOpenHelper-klasse

  2. De naam van een CHECK-beperking in SQL Server wijzigen met T-SQL

  3. Gebruik MySQL relationele databases op CentOS 5.

  4. Is er een snelkoppeling voor SELECT * FROM?