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

Cómo funciona SQLite Count()

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().