Cuando usamos count(columna) o count(expresion) no cuenta los registros
donde la expresion o columna es null.
 En el uso de CPU es apenas un poco mas caro evaluar la expresion (1) que
contar los¨registros usando (*).
Si usaran una expresion mas compleja verian como la cosa cambia como por
ejemplo (sqrt(1))
 Por otro lado las estadisticas de tiempo suelen ser algo mentirosas en
corridas individuales ya que dependen del estado instantanio de la maquina.
Habria que correrlas unas cientos de veces y obtener la media aritmetica.
No hay motivo para usar count(1). La forma correcta de contar los registros
es count(*).

Con respecto a los NULL. Tengan en cuanta que con los join ocurre lo cismo
que cuando se cuenta una columna con null, o sea dos columnas con NULL NUNCA
SE IGUALAN EN LOS JOIN.

El null es un tercer estado distinto inclusive a si mismo. Debe usarse el
operador IS !!!!!!!

Saludos


-- 
--------------------------------
Atte.
Ing. Jose Mariano Alvarez
SQL Total Consulting

Responder a