Как подсчитать общее значение в одном столбце с разными данными - PullRequest
0 голосов
/ 17 июля 2011

Я немного запутался, как назвать название вопроса.

Допустим, моя таблица базы данных MySQL вот так. table_group

UserID  UserGroup  UserStatus
------------------------------
1       1          1  
2       1          1 
3       1          2 
4       2          3
5       3          2
6       3          1
7       4          3
9       4          4
10      4          1 

Я хочу сгруппировать по UserGroup и считать UserStatus.

Дайте мне знать, каково правильное утверждение, чтобы получить такой результат

UserGroup  Status_1  Status_2  Status_3  Status_4
-------------------------------------------------
1          2          2        0         0
2          0          0        1         0
3          1          1        0         0
4          1          0        1         1

Ответы [ 2 ]

1 голос
/ 17 июля 2011
SELECT UserGroup, count(UserStatus = 1) as Status_1, count(UserStatus = 2) as Status_2,
                  count(UserStatus = 3) as Status_3, count(UserStatus = 4) as Status_4
FROM table_group GROUP BY UserGroup
0 голосов
/ 17 июля 2011

Вы можете использовать case для подсчета строк, соответствующих условию:

select  UserGroup
,       count(case when UserStatus = 1 then 1 end) as Status_1
,       count(case when UserStatus = 2 then 1 end) as Status_2
,       count(case when UserStatus = 3 then 1 end) as Status_3
,       count(case when UserStatus = 4 then 1 end) as Status_4
from    table_group
group by
        UserGroup
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...