Resumo : neste tutorial, você aprenderá como usar COUNT
a função SQLite para obter o número de itens em um grupo.
Introdução à COUNT()
função SQLite
A função COUNT()
é uma função agregada que retorna o número de itens em um grupo.
Por exemplo, você pode usar a COUNT()
função para obter o número de faixas da tracks
tabela, o número de artistas da artists
tabela e assim por diante.
O seguinte ilustra a sintaxe básica da COUNT
função:
COUNT([ALL | DISTINCT] expression);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Argumentos
A COUNT
função se comporta de acordo com os argumentos que você passa para ela e a opção ALL
ou DISTINCT
que você especifica.
O seguinte descreve os significados ALL
e DISTINCT
opções:
ALL
: quando você especifica todos, aCOUNT()
função conta todos os valores não nulos, incluindo duplicatas. ACOUNT()
função usa aALL
opção por padrão se você ignorá-la.DISTINCT
: se você usar explicitamente aDISTINCT
opção, aCOUNT
função contará apenas valores únicos e não nulos.
A expressão pode ser uma coluna ou uma expressão que envolve colunas às quais a função COUNT()
é aplicada.
SQLite fornece outra sintaxe da COUNT()
função:
COUNT(*)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A COUNT(*)
função retorna o número de linhas em uma tabela, incluindo as linhas incluindo NULL e duplicatas.
COUNT()
Ilustração da função SQLite
Primeiro, crie uma tabela chamada t1
que tenha uma coluna:
CREATE TABLE t1(c INTEGER);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Segundo, insira cinco linhas na t1
tabela:
INSERT INTO t1(c)
VALUES(1),(2),(3),(null),(3);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Terceiro, consulte os dados da t1
tabela:
SELECT * FROM t1;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Quarto, use a COUNT(*)
função para retornar o número de linhas da t1
tabela:
SELECT COUNT(*) FROM t1;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Como você pode ver claramente na saída, o conjunto de resultados inclui linhas NULL e duplicadas.
Quinto, use the COUNT(expression)
para obter o número de valores não nulos na coluna c
:
SELECT COUNT(c) FROM t1;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Neste exemplo, COUNT(c)
retorna o número de valores não nulos. Conta as linhas duplicadas como linhas separadas.
Sexto, use the COUNT(DISTINCT expression)
para obter o número de valores únicos e não nulos na coluna c
:
SELECT COUNT(DISTINCT c) FROM t1;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
COUNT(*)
Exemplos de SQLite
Pegaremos a tabela tracks
do banco de dados de exemplo para demonstrar a funcionalidade da COUNT(*)
função.
1) COUNT(*)
Exemplo SQLite
Para obter o número de linhas da tracks
tabela, você usa a COUNT(*)
função da seguinte forma:
SELECT count(*)
FROM tracks;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
count(*)
--------
3503
Linguagem de código: texto simples ( texto simples )
2) SQLite COUNT(*)
com WHERE
exemplo de cláusula
A instrução a seguir usa a COUNT(*)
função com uma WHERE
cláusula para encontrar o número de faixas cujo ID do álbum é 10:
SELECT COUNT(*)
FROM tracks
WHERE albumid = 10;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
COUNT(*)
--------
14
3) SQLite COUNT(*)
com GROUP BY
exemplo de cláusula
Para obter todos os álbuns e o número de faixas de cada álbum, você combina a COUNT(*)
função com a GROUP BY
cláusula:
SELECT
albumid,
COUNT(*)
FROM
tracks
GROUP BY
albumid;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
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, a
GROUP BY
cláusula agrupa as faixas por ID do álbum. - Em seguida, a
COUNT(*)
função retorna o número de faixas de cada álbum ou grupo de faixas.
4) SQLite COUNT(*)
com HAVING
exemplo de cláusula
O seguinte usa a cláusula COUNT(*)
in HAVING
para encontrar álbuns com mais de 25 faixas:
SELECT
albumid,
COUNT(*)
FROM
tracks
GROUP BY
albumid
HAVING COUNT(*) > 25
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
AlbumId COUNT(*)
------- --------
23 34
73 30
141 57
229 26
5) SQLite COUNT(*)
com INNER JOIN
exemplo de cláusula
Para tornar o resultado da consulta acima mais útil, você pode incluir a coluna do nome do álbum. Para fazer isso, você adiciona cláusulas INNER JOIN
e ORDER BY
à consulta, como a seguinte:
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;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
AlbumId Title COUNT(*)
------- -------------- --------
141 Greatest Hits 57
23 Minha Historia 34
73 Unplugged 30
229 Lost, Season 3 26
COUNT(DISTINCT expression)
Exemplos de SQLite
Vamos dar uma olhada na employees
tabela do banco de dados de exemplo .
SELECT
employeeid,
lastname,
firstname,
title
FROM
employees;
Linguagem de código: SQL (linguagem de consulta estruturada) ( 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
Para obter o número de títulos de posição, você passa a title
coluna para a COUNT()
função da seguinte forma:
SELECT COUNT(title)
FROM employees;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
COUNT(title)
------------
8
No entanto, para obter o número de títulos exclusivos, você precisa adicionar a DISTINCT
opção à COUNT()
função conforme mostrado na instrução a seguir:
SELECT COUNT(DISTINCT title)
FROM employees;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
COUNT(DISTINCT title)
---------------------
5
Neste tutorial, mostramos como usar COUNT()
a função SQLite para contar o número de itens em um grupo.