使用此查询,我得到的结果是表的两个,因为它们不包含在count中,我想在结果中获取NULL值。要做到这一点,我很确定我需要使用某种子查询,但我不确定如何,因为有问题的属性是聚合。
SELECT Equipment.SerialNo , Name, COUNT(Assignment.SerialNo)
FROM Equipment
INNER JOIN Assignment
ON Assignment.SerialNo = Equipment.SerialNo
GROUP BY Equipment.SerialNo, Name
答案 0 :(得分:4)
如果您想要计算所有行数,则需要将inner join
更改为left outer join
并计算Assignment.SerialNo
以外的其他内容 - 使用count(*)
或其他不会为null,因为count(column)
不包含该列的空值。如果您不希望计数中包含空Assignment.SerialNo
值,则继续在该列上进行聚合。
根据定义,内部联接将跳过Assignment.SerialNo
为NULL
的值 - 外部联接将包含它们。