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
