Używałbyś głównie COUNT
podsumować nad UID. Dlatego
COUNT([uid])
wyświetli ostrzeżenie:
podczas używania z lewym sprzężeniem, gdzie zliczony obiekt nie istnieje.
Używając COUNT(*)
w tym przypadku również renderowałyby niepoprawne wyniki, ponieważ wtedy liczyłbyś całkowitą liczbę wyników (tj. rodziców), które istnieją.
Korzystanie z COUNT([uid])
JEST prawidłowym sposobem liczenia, a ostrzeżenie to nic innego jak ostrzeżenie. Jeśli jednak jesteś zaniepokojony i chcesz uzyskać prawdziwą liczbę UID w tym przypadku, możesz użyć:
SUM(CASE WHEN [uid] IS NULL THEN 0 ELSE 1 END) AS [new_count]
Nie spowodowałoby to zbytniego narzutu na zapytanie.(tested mssql 2008)