我正在尝试获取数据库中每个不同字段的计数。例如,我们正在使用一种称为sourceCodes的东西-我希望能够看到数据库中每个不同的sourceCode有多少个。到目前为止,我有这个

SELECT sourceCode, COUNT(DISTINCT sourceCode)
FROM [SecureOrders]
WHERE DateTime >= DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0)
  AND DateTime < DATEADD(day, DATEDIFF(day, 0, GETDATE()), 1)
GROUP BY sourceCode

(我试图先显示sourceCode的名称,然后显示计数)。到目前为止,我在第二列中唯一得到的是“1”……我很肯定有不止一个。我知道我对这个问题的措词确实很差,但是我真的无法找出其他任何方式来表达它。有人可以看到为什么会这样吗?

最佳答案

样本中的“与众不同”未正确应用。通过按SourceCode分组,您已经从该列中获得了不同的值。

因此,您只需要计算每个组中的行:

SELECT sourceCode, COUNT(*)
FROM [SecureOrders]
WHERE DateTime >= DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0)
  AND DateTime < DATEADD(day, DATEDIFF(day, 0, GETDATE()), 1)
GROUP BY sourceCode

08-06 19:44