我有一个示例表:
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>
答案 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;