В основном вы будете использовать COUNT
для суммирования по UID. Поэтому
COUNT([uid])
выдаст предупреждение:
Внимание: значение Null исключается с помощью агрегата или другой операции SET.
blockquote>, в то время как используется с левым соединением, где подсчитанный объект не существует.
Использование
COUNT(*)
в этом случае также приводило бы к неправильным результатам, так как тогда вы считали бы общее количество результатов (т. е. родители), которые существуют.Использование
COUNT([uid])
Является допустимым способом подсчета, и предупреждение является не чем иным, как предупреждением. Однако если вы заинтересованы, и вы хотите получить истинное количество uids в этом случае, вы можете использовать:SUM(CASE WHEN [uid] IS NULL THEN 0 ELSE 1 END) AS [new_count]
Это не добавило бы много накладных расходов на ваш запрос. (проверено mssql 2008)