Você usaria principalmente
COUNT
para resumir em um UID. Portanto COUNT([uid])
produzirá o aviso:enquanto está sendo usado com uma junção esquerda, onde o objeto contado não existe.
Usando
COUNT(*)
neste caso, também renderia resultados incorretos, pois você estaria contando o número total de resultados (ou seja, pais) que existem. Usando
COUNT([uid])
É uma forma válida de contar, e o aviso nada mais é do que um aviso. No entanto, se você estiver preocupado e quiser obter uma contagem real de uids nesse caso, poderá usar:SUM(CASE WHEN [uid] IS NULL THEN 0 ELSE 1 END) AS [new_count]
Isso não adicionaria muitas sobrecargas à sua consulta. (testado mssql 2008)