Sql Server 2005 использует количество и отличается друг от друга - PullRequest
3 голосов
/ 18 августа 2011

Я пытаюсь получить счетчик каждого отдельного поля в моей базе данных. Например, мы используем нечто, называемое 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

(я пытаюсь сначала отобразить имя исходного кода, а затем счетчик). Пока что единственное, что я когда-либо получаю во втором столбце, это «1» ... и я уверен, что их больше одного. Я знаю, что сформулировал этот вопрос очень плохо, но я не могу придумать другого способа сказать это. Кто-нибудь может понять, почему это происходит?

Ответы [ 2 ]

4 голосов
/ 18 августа 2011

«Отличный» в вашем образце не применяется в правильном месте.Группируя по 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 голос
/ 18 августа 2011

Убрать ОТЛИЧИЕ:

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
...