sql >> Databáze >  >> RDS >> SQLite

SQLite COUNT

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á ALL možnost ve výchozím nastavení, pokud ji přeskočíte.
  • DISTINCT :pokud explicitně použijete DISTINCT možnost COUNT funkce 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 BY klauzule 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ě.


  1. Jak PERIOD_ADD() funguje v MariaDB

  2. Použití SQL LIKE a IN společně

  3. Jak vybrat datum bez času v SQL

  4. Připojení PHP se nezdařilo:SQLSTATE[HY000] [2002] Připojení odmítnuto