我试图获取数据库中每个不同字段的计数。例如,我们正在使用一个名为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的名称,然后是计数)。到目前为止,我在第二栏中唯一得到的是&#34; 1&#34; ......而且我的肯定有不止一个。我知道我这个问题的措辞非常糟糕,但我无法通过任何其他方式说出来。有人能看出为什么会这样吗?
答案 0 :(得分:4)
样本中的“distinct”未在正确的位置应用。通过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
答案 1 :(得分:1)
删除DISTINCT:
SELECT sourceCode, COUNT(sourceCode)
FROM [SecureOrders]
WHERE DateTime >= DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0)
AND DateTime < DATEADD(day, DATEDIFF(day, 0, GETDATE()), 1)
GROUP BY sourceCode