sql >> Base de Datos >  >> RDS >> SQLite

CUENTA SQLite

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, el COUNT() función cuenta todos los valores no nulos incluyen duplicados. El COUNT() La función usa ALL opción predeterminada si la omite.
  • DISTINCT :si usa explícitamente DISTINCT opción, el COUNT 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(*)
--------
3503Code 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(*) > 25Code 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.