Resumen :en este tutorial, aprenderá a usar SQLite COUNT
función para obtener el número de elementos en un grupo.
Introducción a SQLite COUNT()
función
La función COUNT()
es una función agregada que devuelve el número de elementos en un grupo.
Por ejemplo, puede usar el COUNT()
función para obtener el número de pistas de tracks
tabla, el número de artistas de los artists
mesa, etc.
A continuación se ilustra la sintaxis básica de COUNT
función:
COUNT([ALL | DISTINCT] expression);
Code language: SQL (Structured Query Language) (sql)
Argumentos
El COUNT
la función se comporta de acuerdo con los argumentos que le pasas y la opción ALL
o DISTINCT
que especifique.
A continuación se describen los significados de ALL
y DISTINCT
opciones:
ALL
:cuando especifica todo, elCOUNT()
función cuenta todos los valores no nulos incluyen duplicados. ElCOUNT()
La función usaALL
opción predeterminada si la omite.DISTINCT
:si usa explícitamenteDISTINCT
opción, elCOUNT
la función solo cuenta valores únicos y no nulos.
La expresión puede ser una columna o una expresión que involucre columnas a las que la función COUNT()
se aplica.
SQLite proporciona otra sintaxis de COUNT()
función:
COUNT(*)
Code language: SQL (Structured Query Language) (sql)
El COUNT(*)
La función devuelve el número de filas en una tabla, incluidas las filas que incluyen NULL y duplicados.
SQLite COUNT()
ilustración de función
Primero, crea una tabla llamada t1
que tiene una columna:
CREATE TABLE t1(c INTEGER);
Code language: SQL (Structured Query Language) (sql)
En segundo lugar, inserte cinco filas en el t1
tabla:
INSERT INTO t1(c)
VALUES(1),(2),(3),(null),(3);
Code language: SQL (Structured Query Language) (sql)
Tercero, consulte los datos del t1
tabla:
SELECT * FROM t1;
Code language: SQL (Structured Query Language) (sql)

Cuarto, usa el COUNT(*)
función para devolver el número de filas en el t1
tabla:
SELECT COUNT(*) FROM t1;
Code language: SQL (Structured Query Language) (sql)

Como puede ver claramente en la salida, el conjunto de resultados incluye NULL y filas duplicadas.
Quinto, use el COUNT(expression)
para obtener el número de valores no nulos en la columna c
:
SELECT COUNT(c) FROM t1;
Code language: SQL (Structured Query Language) (sql)

En este ejemplo, el COUNT(c)
devuelve el número de valores no nulos. Cuenta las filas duplicadas como filas separadas.
Sexto, use el COUNT(DISTINCT expression)
para obtener el número de valores únicos y no nulos en la columna c
:
SELECT COUNT(DISTINCT c) FROM t1;
Code language: SQL (Structured Query Language) (sql)

SQLite COUNT(*)
ejemplos
Tomaremos la tabla tracks
en la base de datos de muestra para demostrar la funcionalidad de COUNT(*)
función.

1) SQLite COUNT(*)
ejemplo
Para obtener el número de filas de las tracks
tabla, utiliza el COUNT(*)
funcionan de la siguiente manera:
SELECT count(*)
FROM tracks;
Code language: SQL (Structured Query Language) (sql)
Pruébalo
count(*)
--------
3503
Code language: plaintext (plaintext)
2) SQLite COUNT(*)
con WHERE
ejemplo de cláusula
La siguiente instrucción utiliza el COUNT(*)
función con un WHERE
cláusula para encontrar el número de pistas cuyo ID de álbum es 10:
SELECT COUNT(*)
FROM tracks
WHERE albumid = 10;
Code language: SQL (Structured Query Language) (sql)
Pruébalo
COUNT(*)
--------
14
3) SQLite COUNT(*)
con GROUP BY
ejemplo de cláusula
Para obtener todos los álbumes y la cantidad de pistas en cada álbum, combina el COUNT(*)
función con el GROUP BY
cláusula:
SELECT
albumid,
COUNT(*)
FROM
tracks
GROUP BY
albumid;
Code language: SQL (Structured Query Language) (sql)
Pruébalo
AlbumId COUNT(*)
------- --------
1 10
2 1
3 3
4 8
5 15
6 13
7 12
8 14
9 8
10 14
...
En este ejemplo:
- Primero, el
GROUP BY
cláusula agrupar pistas por ID de álbum. - Entonces, el
COUNT(*)
La función devuelve el número de pistas para cada álbum o grupo de pistas.
4) SQLite COUNT(*)
con HAVING
ejemplo de cláusula
Lo siguiente usa el COUNT(*)
en el HAVING
cláusula para buscar álbumes que tengan más de 25 pistas:
SELECT
albumid,
COUNT(*)
FROM
tracks
GROUP BY
albumid
HAVING COUNT(*) > 25
Code language: SQL (Structured Query Language) (sql)
Pruébalo
AlbumId COUNT(*)
------- --------
23 34
73 30
141 57
229 26
5) SQLite COUNT(*)
con INNER JOIN
ejemplo de cláusula
Para que el resultado de la consulta anterior sea más útil, puede incluir la columna del nombre del álbum. Para hacer esto, agrega INNER JOIN
y ORDER BY
cláusulas a la consulta como la siguiente 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)
Pruébalo
AlbumId Title COUNT(*)
------- -------------- --------
141 Greatest Hits 57
23 Minha Historia 34
73 Unplugged 30
229 Lost, Season 3 26
SQLite COUNT(DISTINCT expression)
ejemplos
Echemos un vistazo a los employees
tabla de la base de datos de ejemplo.

SELECT
employeeid,
lastname,
firstname,
title
FROM
employees;
Code language: SQL (Structured Query Language) (sql)
Pruébalo
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 obtener el número de títulos de puestos, pasa el title
columna al COUNT()
funcionan de la siguiente manera:
SELECT COUNT(title)
FROM employees;
Code language: SQL (Structured Query Language) (sql)
Pruébalo
COUNT(title)
------------
8
Sin embargo, para obtener la cantidad de títulos únicos, debe agregar DISTINCT
opción al COUNT()
función como se muestra en la siguiente instrucción:
SELECT COUNT(DISTINCT title)
FROM employees;
Code language: SQL (Structured Query Language) (sql)
Pruébalo
COUNT(DISTINCT title)
---------------------
5
En este tutorial, le mostramos cómo usar SQLite COUNT()
función para contar el número de elementos en un grupo.