SELECT DISTINCT 2列并计算它出现的次数

时间:2015-01-10 12:28:21

标签: mysql

我有一个示例表:

user1 | status1 | user2 | status2
Maria      2      Ana        1
Elena      2      Angela     1
Angela     1      Ana        2
Maria      2      Elena      1
Elena      1      Ana        2
Maria      1      Akisha     2
Elena      1      Akisha     2

我想计算名称在user1或user2中出现的次数,其中值为2,并且还计算它在user1或user2中出现的值为1的次数。

通过上面的例子,所需的结果是:

user | statusis2 | statusis1
Akisha     2           0
Maria      2           1
Ana        2           1
Elena      1           3
Angela     0           2

如上所述,它由statusis2 DESC,statusis1 ASC

安排

提前感谢您的帮助。

B'/ P>

1 个答案:

答案 0 :(得分:1)

E.g:

SELECT user
     , SUM(status = 1) status1
     , SUM(status = 2) status2
FROM
(
SELECT user1 user, 1 status_type, status1 status FROM my_table
UNION ALL
SELECT user2, 2, status2 FROM my_table
)x
GROUP BY user;