Shrnutí :v tomto tutoriálu se naučíte používat SQLite COUNT funkce pro získání počtu položek ve skupině.
Úvod do SQLite COUNT() funkce
Funkce COUNT() je agregační funkce, která vrací počet položek ve skupině.
Můžete například použít COUNT() Funkce pro získání počtu stop z tracks tabulka, počet umělců z artists stůl a tak dále.
Následující text ilustruje základní syntaxi COUNT funkce:
COUNT([ALL | DISTINCT] expression);Code language: SQL (Structured Query Language) (sql) Argumenty
COUNT funkce se chová podle argumentů, které do ní předáte, a volby ALL nebo DISTINCT které určíte.
Následující text popisuje význam ALL a DISTINCT možnosti:
ALL:když zadáte vše,COUNT()funkce počítá všechny nenulové hodnoty včetně duplikátů.COUNT()funkce používáALLmožnost ve výchozím nastavení, pokud ji přeskočíte.DISTINCT:pokud explicitně použijeteDISTINCTmožnostCOUNTfunkce počítá pouze jedinečné a nenulové hodnoty.
Výraz může být sloupec nebo výraz, který obsahuje sloupce, ke kterým má funkce COUNT() je použito.
SQLite poskytuje další syntaxi COUNT() funkce:
COUNT(*)Code language: SQL (Structured Query Language) (sql)
COUNT(*) funkce vrací počet řádků v tabulce, včetně řádků včetně NULL a duplikátů.
SQLite COUNT() funkční ilustrace
Nejprve vytvořte tabulku s názvem t1 který má jeden sloupec:
CREATE TABLE t1(c INTEGER);Code language: SQL (Structured Query Language) (sql)
Za druhé vložte pět řádků do t1 tabulka:
INSERT INTO t1(c)
VALUES(1),(2),(3),(null),(3);Code language: SQL (Structured Query Language) (sql)
Za třetí, dotazujte se na data z t1 tabulka:
SELECT * FROM t1;Code language: SQL (Structured Query Language) (sql)
Za čtvrté, použijte COUNT(*) funkce, která vrátí počet řádků v t1 tabulka:
SELECT COUNT(*) FROM t1;Code language: SQL (Structured Query Language) (sql)
Jak můžete jasně vidět z výstupu, sada výsledků obsahuje NULL a duplicitní řádky.
Za páté, použijte COUNT(expression) získat počet nenulových hodnot ve sloupci c :
SELECT COUNT(c) FROM t1;Code language: SQL (Structured Query Language) (sql)
V tomto příkladu COUNT(c) vrátí počet hodnot, které nejsou null. Počítá duplicitní řádky jako samostatné řádky.
Za šesté, použijte COUNT(DISTINCT expression) získat počet jedinečných a nenulových hodnot ve sloupci c :
SELECT COUNT(DISTINCT c) FROM t1;Code language: SQL (Structured Query Language) (sql)
SQLite COUNT(*) příklady
Vezmeme tabulku tracks ve vzorové databázi, abyste demonstrovali funkčnost COUNT(*) funkce.
1) SQLite COUNT(*) příklad
Chcete-li získat počet řádků ze tracks tabulky, použijete COUNT(*) fungovat následovně:
SELECT count(*)
FROM tracks;Code language: SQL (Structured Query Language) (sql) Zkuste to
count(*)
--------
3503Code language: plaintext (plaintext) 2) SQLite COUNT(*) pomocí WHERE příklad klauzule
Následující příkaz používá COUNT(*) funkce s WHERE klauzule k nalezení počtu skladeb, jejichž ID alba je 10:
SELECT COUNT(*)
FROM tracks
WHERE albumid = 10;Code language: SQL (Structured Query Language) (sql) Zkuste to
COUNT(*)
--------
14 3) SQLite COUNT(*) pomocí GROUP BY příklad klauzule
Chcete-li získat všechna alba a počet skladeb v každém albu, zkombinujte COUNT(*) pomocí funkce GROUP BY klauzule:
SELECT
albumid,
COUNT(*)
FROM
tracks
GROUP BY
albumid;Code language: SQL (Structured Query Language) (sql) Zkuste to
AlbumId COUNT(*)
------- --------
1 10
2 1
3 3
4 8
5 15
6 13
7 12
8 14
9 8
10 14
... V tomto příkladu:
- Nejprve
GROUP BYklauzule seskupit skladby podle ID alba. - Poté
COUNT(*)Funkce vrací počet stop pro každé album nebo skupinu stop.
4) SQLite COUNT(*) s HAVING příklad klauzule
Následující používá COUNT(*) v HAVING klauzule k vyhledání alb, která mají více než 25 skladeb:
SELECT
albumid,
COUNT(*)
FROM
tracks
GROUP BY
albumid
HAVING COUNT(*) > 25Code language: SQL (Structured Query Language) (sql) Zkuste to
AlbumId COUNT(*)
------- --------
23 34
73 30
141 57
229 26 5) SQLite COUNT(*) pomocí INNER JOIN příklad klauzule
Aby byl výstup výše uvedeného dotazu užitečnější, můžete zahrnout sloupec názvu alba. Chcete-li to provést, přidejte INNER JOIN a ORDER BY klauzule k dotazu, jako je následující dotaz:
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) Zkuste to
AlbumId Title COUNT(*)
------- -------------- --------
141 Greatest Hits 57
23 Minha Historia 34
73 Unplugged 30
229 Lost, Season 3 26 SQLite COUNT(DISTINCT expression) příklady
Podívejme se na employees tabulky ze vzorové databáze.

SELECT
employeeid,
lastname,
firstname,
title
FROM
employees;Code language: SQL (Structured Query Language) (sql) Zkuste to
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
Chcete-li získat počet názvů pozic, předejte title do COUNT() fungovat následovně:
SELECT COUNT(title)
FROM employees;Code language: SQL (Structured Query Language) (sql) Zkuste to
COUNT(title)
------------
8
Chcete-li však získat počet jedinečných titulů, musíte přidat DISTINCT možnost COUNT() funkce, jak je znázorněno v následujícím prohlášení:
SELECT COUNT(DISTINCT title)
FROM employees;Code language: SQL (Structured Query Language) (sql) Zkuste to
COUNT(DISTINCT title)
---------------------
5
V tomto tutoriálu jsme vám ukázali, jak používat SQLite COUNT() funkce pro počítání počtu položek ve skupině.