El SQLite count()
La función se puede utilizar para devolver el número de filas en un conjunto de resultados.
También se puede utilizar para devolver el número de veces que una columna determinada no es NULL en el conjunto de resultados.
Se puede utilizar de dos maneras. Si pasa el asterisco (*
) carácter comodín, devolverá el número total de filas en el grupo. Si proporciona el nombre de una columna, devolverá la cantidad de veces que esa columna no es NULL.
Sintaxis
La sintaxis es así:
count(X)
count(*)
Entonces, en este caso, X
podría ser el nombre de una columna y el asterisco (*
) se utiliza comodín para especificar el número total de filas en el grupo.
Ejemplo:contar(*)
Aquí hay un ejemplo básico para demostrar la sintaxis del asterisco (*) para devolver el número de filas en una tabla.
SELECT count(*) FROM Customer;
Resultado:
59
Ejecuté esta consulta en la base de datos de muestra de Chinook, y resulta que hay 59 filas en Cliente mesa.
Ejemplo:cuenta(X)
En este ejemplo, paso el nombre de una columna específica de la tabla.
SELECT count(Fax) FROM Customer;
Resultado:
12
En este caso, el Fax columna tiene 12 valores no NULL.
En otras palabras, 47 filas contienen un valor NULL en el Fax columna.
Uso de una cláusula WHERE
El resultado de count()
se calcula después de cualquier WHERE
cláusulas.
SELECT count(Fax)
FROM Customer
WHERE CustomerId <= 5;
Resultado:
2
En este caso, solo había dos valores no NULL en el Fax columna dentro del conjunto de resultados.
Así es como se ven los resultados con las columnas devueltas (y sin usar el count()
función).
SELECT CustomerId, Fax
FROM Customer
WHERE CustomerId <= 5;
Resultado:
CustomerId Fax ---------- ------------------ 1 +55 (12) 3923-5566 2 3 4 5 +420 2 4172 5555
Entonces podemos ver que solo las filas 1 y 5 tienen valores no NULL en el Fax columna.
Uso de una cláusula LIMIT
El resultado no se calcula después de cualquier LIMIT
cláusula.
SELECT count(Fax)
FROM Customer
LIMIT 5;
Resultado:
12
Pero puedes hacer algo como esto en su lugar:
SELECT count(Fax)
FROM (SELECT Fax FROM Customer
LIMIT 5);
Resultado:
2
Resultados agrupados
Un caso de uso práctico para count()
es usarlo junto con GROUP BY
cláusula, de modo que se devuelvan varias filas, cada una de las cuales representa un grupo, con un recuento de las filas en ese grupo.
He aquí un ejemplo.
SELECT
ar.Name,
count(al.Title)
FROM Album al
INNER JOIN Artist ar
ON ar.ArtistId = al.ArtistId
WHERE ar.Name LIKE 'D%'
GROUP BY ar.Name
LIMIT 10;
Resultado:
Name count(al.Title) --------------- --------------- David Coverdale 1 Deep Purple 11 Def Leppard 1 Dennis Chambers 1 Djavan 2 Dread Zeppelin 1
La palabra clave DISTINTA
Puede agregar el DISTINCT
palabra clave para contar solo valores distintos. En otras palabras, puede eliminar valores duplicados en el cálculo.
Para ver ejemplos de esto, consulte Cómo eliminar duplicados de los resultados de SQLite Count().