SQLite
 sql >> база данни >  >> RDS >> SQLite

SQLite COUNT

Резюме :в този урок ще научите как да използвате 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() функция за преброяване на броя на елементите в група.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Има ли методи, които помагат при разрешаването на често срещани проблеми със SQLite?

  2. Създаване на приложение за препоръки за филми на Django с помощта на Jaccard Index

  3. 4 начина за изброяване на изгледите в база данни на SQLite

  4. Как да избегнете използването на + в номера на версията със SQLiteAssetHelper

  5. Най-добрият начин за запазване на изображения, които идват от сървър в android