SQLiteCONTAR

Resumo : neste tutorial, você aprenderá como usar COUNTa 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 trackstabela, o número de artistas da artiststabela e assim por diante.

O seguinte ilustra a sintaxe básica da COUNTfunção:

COUNT([ALL | DISTINCT] expression);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Argumentos

A COUNTfunção se comporta de acordo com os argumentos que você passa para ela e a opção ALLou DISTINCTque você especifica.

O seguinte descreve os significados ALLe DISTINCTopções:

  • ALL: quando você especifica todos, a COUNT()função conta todos os valores não nulos, incluindo duplicatas. A COUNT()função usa a ALLopção por padrão se você ignorá-la.
  • DISTINCT: se você usar explicitamente a DISTINCTopção, a COUNTfunçã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 t1que tenha uma coluna:

CREATE TABLE t1(c INTEGER);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Segundo, insira cinco linhas na t1tabela:

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 t1tabela:

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 t1tabela:

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 tracksdo 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 trackstabela, você usa a COUNT(*)função da seguinte forma:

SELECT count(*)
FROM tracks;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

count(*)
--------
3503Linguagem de código:  texto simples  ( texto simples )

2) SQLite COUNT(*)com WHEREexemplo de cláusula

A instrução a seguir usa a COUNT(*)função com uma WHEREclá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 )

Tente

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

3) SQLite COUNT(*)com GROUP BYexemplo 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 BYcláusula:

SELECT
	albumid,
	COUNT(*)
FROM
	tracks
GROUP BY
	albumid;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( 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, a GROUP BYclá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 HAVINGexemplo de cláusula

O seguinte usa a cláusula COUNT(*)in HAVINGpara encontrar álbuns com mais de 25 faixas:

SELECT
   albumid,
   COUNT(*)
FROM
   tracks
GROUP BY
   albumid
HAVING COUNT(*) > 25Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

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

5) SQLite COUNT(*)com INNER JOINexemplo 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 JOINe 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 )

Tente

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   employeestabela do banco de dados de exemplo .

SELECT
	employeeid,
	lastname,
	firstname,
	title
FROM
	employees;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( 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 a titlecoluna para a COUNT()função da seguinte forma:

SELECT COUNT(title)
FROM employees;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

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

No entanto, para obter o número de títulos exclusivos, você precisa adicionar a DISTINCTopçã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 )

Tente

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

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

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *