Резюме :в този урок ще научите как да използвате SQLite COUNT функция за получаване на броя на елементите в група.
Въведение в SQLite COUNT() функция
Функцията COUNT() е агрегатна функция, която връща броя на елементите в група.
Например, можете да използвате COUNT() функция за получаване на броя на песните от tracks таблица, броят на изпълнителите от artists таблица и т.н.
Следното илюстрира основния синтаксис на COUNT функция:
COUNT([ALL | DISTINCT] expression);Code language: SQL (Structured Query Language) (sql) Аргументи
COUNT функцията се държи според аргументите, които предавате в нея и опцията ALL или DISTINCT които посочите.
Следното описва значенията на ALL и DISTINCT опции:
ALL:когато посочите всички,COUNT()функцията брои всички ненулеви стойности включват дубликати.COUNT()функцията използваALLопция по подразбиране, ако я пропуснете.DISTINCT:ако изрично използватеDISTINCTопциятаCOUNTфункцията отчита само уникални и ненулеви стойности.
Изразът може да бъде колона или израз, който включва колони, към които се прилага функцията COUNT() се прилага.
SQLite предоставя друг синтаксис на COUNT() функция:
COUNT(*)Code language: SQL (Structured Query Language) (sql)
COUNT(*) функцията връща броя на редовете в таблица, включително редовете, включително NULL и дубликатите.
SQLite COUNT() функционална илюстрация
Първо създайте таблица, наречена t1 която има една колона:
CREATE TABLE t1(c INTEGER);Code language: SQL (Structured Query Language) (sql)
Второ, поставете пет реда в t1 таблица:
INSERT INTO t1(c)
VALUES(1),(2),(3),(null),(3);Code language: SQL (Structured Query Language) (sql)
Трето, заявете данни от t1 таблица:
SELECT * FROM t1;Code language: SQL (Structured Query Language) (sql)
Четвърто, използвайте COUNT(*) функция за връщане на броя на редовете в t1 таблица:
SELECT COUNT(*) FROM t1;Code language: SQL (Structured Query Language) (sql)
Както можете да видите ясно от изхода, резултатният набор включва NULL и дублиращи се редове.
Пето, използвайте COUNT(expression) за да получите броя на ненулевите стойности в колоната c :
SELECT COUNT(c) FROM t1;Code language: SQL (Structured Query Language) (sql)
В този пример COUNT(c) връща броя на ненулевите стойности. Отчита дублиращите се редове като отделни.
Шесто, използвайте COUNT(DISTINCT expression) за да получите броя на уникалните и ненулеви стойности в колона c :
SELECT COUNT(DISTINCT c) FROM t1;Code language: SQL (Structured Query Language) (sql)
SQLite COUNT(*) примери
Ще вземем таблицата tracks в примерната база данни, за да демонстрирате функционалността на COUNT(*) функция.
1) SQLite COUNT(*) пример
За да получите броя на редовете от tracks таблица, използвате COUNT(*) функционира, както следва:
SELECT count(*)
FROM tracks;Code language: SQL (Structured Query Language) (sql) Опитайте го
count(*)
--------
3503Code language: plaintext (plaintext) 2) SQLite COUNT(*) с WHERE пример за клауза
Следното изявление използва COUNT(*) функция с WHERE клауза за намиране на броя на песните, чийто идентификатор на албума е 10:
SELECT COUNT(*)
FROM tracks
WHERE albumid = 10;Code language: SQL (Structured Query Language) (sql) Опитайте го
COUNT(*)
--------
14 3) SQLite COUNT(*) с GROUP BY пример за клауза
За да получите всички албуми и броя на песните във всеки албум, комбинирате COUNT(*) функция с GROUP BY клауза:
SELECT
albumid,
COUNT(*)
FROM
tracks
GROUP BY
albumid;Code language: SQL (Structured Query Language) (sql) Опитайте го
AlbumId COUNT(*)
------- --------
1 10
2 1
3 3
4 8
5 15
6 13
7 12
8 14
9 8
10 14
... В този пример:
- Първо,
GROUP BYклауза групирайте песни по идентификатор на албума. - След това
COUNT(*)функцията връща броя на песните за всеки албум или група песни.
4) SQLite COUNT(*) с HAVING пример за клауза
Следното използва COUNT(*) в HAVING клауза за намиране на албуми, които имат повече от 25 песни:
SELECT
albumid,
COUNT(*)
FROM
tracks
GROUP BY
albumid
HAVING COUNT(*) > 25Code language: SQL (Structured Query Language) (sql) Опитайте го
AlbumId COUNT(*)
------- --------
23 34
73 30
141 57
229 26 5) SQLite COUNT(*) с INNER JOIN пример за клауза
За да направите изхода от горната заявка по-полезен, можете да включите колоната с името на албума. За да направите това, добавяте INNER JOIN и ORDER BY клаузи към заявката като следната заявка:
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) Опитайте го
AlbumId Title COUNT(*)
------- -------------- --------
141 Greatest Hits 57
23 Minha Historia 34
73 Unplugged 30
229 Lost, Season 3 26 SQLite COUNT(DISTINCT expression) примери
Нека да разгледаме employees таблица от примерната база данни.

SELECT
employeeid,
lastname,
firstname,
title
FROM
employees;Code language: SQL (Structured Query Language) (sql) Опитайте го
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
За да получите броя на заглавията на позициите, предавате title колона към COUNT() функционира, както следва:
SELECT COUNT(title)
FROM employees;Code language: SQL (Structured Query Language) (sql) Опитайте го
COUNT(title)
------------
8
Въпреки това, за да получите броя на уникалните заглавия, трябва да добавите DISTINCT опция за COUNT() функция, както е показано в следното изявление:
SELECT COUNT(DISTINCT title)
FROM employees;Code language: SQL (Structured Query Language) (sql) Опитайте го
COUNT(DISTINCT title)
---------------------
5
В този урок ви показахме как да използвате SQLite COUNT() функция за преброяване на броя на елементите в група.