SQL - 如何 return 计数为 0

SQL - How to return a count of 0

假设我有一个 table,其中一列是 GroupName。每行可以有此列的三个值之一:A、B 或 C。如果我想查询每个组中有多少个对象在我的数据库中,我可以 运行 像这样:

SELECT COUNT(*) c, GroupName
FROM MyTable
GROUP BY GroupName

这是我的问题:例如,如果我在 table 中有 100 个对象,A 中有 75 个,B 中有 25 个,C 中有 0 个,如果我 运行 这个查询它将return 这个:

GroupName    c
--------------
A           75
B           25

但是,我正在尝试使用此查询来填充 SSRS table 以显示金额,而此 table 需要显示所有 可能 组,而不仅仅是实际使用的组。在这个例子中,我仍然需要在我的 table 中为 C 添加第三行。如果该行在那里,我知道如何输入 0,例如 =IIf(Fields!c.Value = Nothing, "0", Fields!c.Value),但在上面的例子中它没有甚至不创建行。我如何确保为每个值创建一行,即使未使用所述值?

要知道你有一个 C 组,它必须在你的一张桌子上,所以你需要做这样的事情:

select X.c, G.GroupName
from 
groups G
outer apply (
  SELECT COUNT(*) c, GroupName
  FROM MyTable
  GROUP BY GroupName
) X on X.GroupName = G.GroupName