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, oCOUNT()
função conta todos os valores não nulos incluem duplicatas. OCOUNT()
função usa oALL
opção por padrão se você ignorá-la.DISTINCT
:se você usar explicitamente oDISTINCT
opção, oCOUNT
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(*)
--------
3503
Code 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(*) > 25
Code 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.