SQL группа по где заявление - PullRequest
0 голосов
/ 20 июля 2010

Допустим, у меня есть эта таблица

user|group|acceptance
1   | a   | -1
2   | a   | 2
3   | b   | 1
4   | b   | 2
5   | b   | 2
6   | c   | -1

Как мне подсчитать, сколько пользователей в каждой группе принимают не -1, но все равно перечислить группу с 0 счетом

, так что результатбыло бы похоже

group | count
a     | 1
b     | 3
c     | 0

спасибо за помощь

Ответы [ 2 ]

2 голосов
/ 20 июля 2010
SELECT [group], SUM(CASE acceptance WHEN -1 THEN 0 ELSE 1 END) AS [count]
FROM MyTable
GROUP BY [group]
1 голос
/ 20 июля 2010

Count(Col) не учитывает значения NULL. Так что передайте ненулевое значение, где принятие <> -1 (и оно будет по умолчанию равным нулю для случая, не обработанного)

SELECT [group], 
       COUNT(CASE WHEN acceptance <> -1 THEN 1 END) AS [count] 
FROM tbl
GROUP BY [group]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...