2009-03-17 16 views
9

La función count() cuenta filas, y se usa muy a menudo como count(*). Si tuviera una tabla con phoneNo y firstName, count(phoneNumber) devuelve el mismo número que count(*). Todas las columnas están siempre presentes, si no están pobladas, en cada fila.¿Por qué la función count() requiere un parámetro?

+0

try count with UNIQUE –

Respuesta

20

Hay una diferencia sutil.

Si especifica un campo, count (fieldname) contará los registros que tengan valores no nulos para el campo. count (*) le dará filas totales.

4

Ver MSDN

Count (PHONENO) devolverá el número de registros en los que PHONENO no es nulo. Count (*) devuelve el número o las filas independientemente.

+0

+1: Cita la documentación. –

2

COUNT(*) contará cada fila. COUNT(yourColumn) no incluirá las filas donde yourColumn es NULL.

Por ejemplo, si hay 20 filas de la tabla y la columna de phoneNumber es NULL en 5 de esas filas, a continuación, COUNT(*) devolverá 20 mientras que COUNT(phoneNumber) volverá 15.

7

Por otra parte usted puede contar con distinta valores. count (distinct firstName) puede entregar un resultado diferente como count (distinto phoneNumber) y ambos pueden ser diferentes a count().

Cuestiones relacionadas