SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

SQLite COUNT


Resumo :neste tutorial, você aprenderá a usar SQLite COUNT função para obter o número de itens em um grupo.

Introdução ao SQLite COUNT() função


A função COUNT() é uma função agregada que retorna o número de itens em um grupo.

Por exemplo, você pode usar o COUNT() função para obter o número de faixas das tracks tabela, o número de artistas dos artists mesa, e assim por diante.

O seguinte ilustra a sintaxe básica do COUNT função:
COUNT([ALL | DISTINCT] expression);Code language: SQL (Structured Query Language) (sql)

Argumentos


O COUNT função se comporta de acordo com os argumentos que você passa para ela e a opção ALL ou DISTINCT que você especificar.

O seguinte descreve os significados de ALL e DISTINCT opções:
  • ALL :quando você especifica tudo, o COUNT() função conta todos os valores não nulos incluem duplicatas. O COUNT() função usa o ALL opção por padrão se você ignorá-la.
  • DISTINCT :se você usar explicitamente o DISTINCT opção, o COUNT função conta apenas valores únicos e não nulos.

A expressão pode ser uma coluna ou uma expressão que envolve colunas para as quais a função COUNT() é aplicado.

SQLite fornece outra sintaxe do COUNT() função:
COUNT(*)Code language: SQL (Structured Query Language) (sql)

O COUNT(*) A função retorna o número de linhas em uma tabela, incluindo as linhas, incluindo NULL e duplicatas.

SQLite COUNT() ilustração de função


Primeiro, crie uma tabela chamada t1 que tem uma coluna:
CREATE TABLE t1(c INTEGER);Code language: SQL (Structured Query Language) (sql)

Segundo, insira cinco linhas no t1 tabela:
INSERT INTO t1(c)
VALUES(1),(2),(3),(null),(3);Code language: SQL (Structured Query Language) (sql)

Terceiro, consulte os dados do t1 tabela:
SELECT * FROM t1;Code language: SQL (Structured Query Language) (sql)

Quarto, use o COUNT(*) função para retornar o número de linhas no t1 tabela:
SELECT COUNT(*) FROM t1;Code language: SQL (Structured Query Language) (sql)

Como você pode ver claramente na saída, o conjunto de resultados inclui linhas NULL e duplicadas.

Quinto, use o COUNT(expression) para obter o número de valores não nulos na coluna c :
SELECT COUNT(c) FROM t1;Code language: SQL (Structured Query Language) (sql)

Neste exemplo, o COUNT(c) retorna o número de valores não nulos. Ele conta as linhas duplicadas como linhas separadas.

Sexto, use o COUNT(DISTINCT expression) para obter o número de valores únicos e não nulos na coluna c :
SELECT COUNT(DISTINCT c) FROM t1;Code language: SQL (Structured Query Language) (sql)

SQLite COUNT(*) exemplos


Vamos pegar a tabela tracks no banco de dados de amostra para demonstrar a funcionalidade do COUNT(*) função.

1) SQLite COUNT(*) exemplo


Para obter o número de linhas das tracks tabela, você usa o COUNT(*) funcionar da seguinte forma:
SELECT count(*)
FROM tracks;Code language: SQL (Structured Query Language) (sql)

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

2) SQLite COUNT(*) com WHERE exemplo de cláusula


A instrução a seguir usa o COUNT(*) função com um WHERE cláusula para encontrar o número de faixas cujo ID do álbum é 10:
SELECT COUNT(*)
FROM tracks
WHERE albumid = 10;Code language: SQL (Structured Query Language) (sql)

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

3) SQLite COUNT(*) com GROUP BY exemplo de cláusula


Para obter todos os álbuns e o número de faixas em cada álbum, você combina o COUNT(*) função com o GROUP BY cláusula:
SELECT
	albumid,
	COUNT(*)
FROM
	tracks
GROUP BY
	albumid;Code language: SQL (Structured Query Language) (sql)

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

Neste exemplo:
  • Primeiro, o GROUP BY cláusula agrupar faixas por ID do álbum.
  • Então, o COUNT(*) função retorna o número de faixas para cada álbum ou grupo de faixas.

4) SQLite COUNT(*) com HAVING exemplo de cláusula


O seguinte usa o COUNT(*) no HAVING cláusula para encontrar álbuns com mais de 25 faixas:
SELECT
   albumid,
   COUNT(*)
FROM
   tracks
GROUP BY
   albumid
HAVING COUNT(*) > 25Code language: SQL (Structured Query Language) (sql)

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

5) SQLite COUNT(*) com INNER JOIN exemplo de cláusula


Para tornar a saída da consulta acima mais útil, você pode incluir a coluna de nome do álbum. Para fazer isso, você adiciona INNER JOIN e ORDER BY cláusulas para a consulta como a seguinte consulta:
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)

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

SQLite COUNT(DISTINCT expression) exemplos


Vamos dar uma olhada nos employees tabela do banco de dados de exemplo.
SELECT
	employeeid,
	lastname,
	firstname,
	title
FROM
	employees;Code language: SQL (Structured Query Language) (sql)

Tente
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

Para obter o número de títulos de posição, você passa o title coluna para o COUNT() funcionar da seguinte forma:
SELECT COUNT(title)
FROM employees;Code language: SQL (Structured Query Language) (sql)

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

No entanto, para obter o número de títulos exclusivos, você precisa adicionar o DISTINCT opção para COUNT() função como mostrado na seguinte declaração:
SELECT COUNT(DISTINCT title)
FROM employees;Code language: SQL (Structured Query Language) (sql)

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

Neste tutorial, mostramos como usar SQLite COUNT() função para contar o número de itens em um grupo.