如何构建一个按一列group_id
分组的查询,但计入两列?
我有下表。
---------------------
user_id | group_id
---------------------
1 | 6
0 | 6
0 | 6
2 | 8
3 | 8
0 | 7
4 | 9
我希望结果显示如下。下面的条件是count_users
是user_id
大于但不等于0的条件,count_guests
是user_id
等于0的条件。 / p>
---------------------------------------
group_id | count_users | count_guests
---------------------------------------
6 | 1 | 2
8 | 2 | 0
7 | 0 | 1
9 | 1 | 0
答案 0 :(得分:1)
因为MySQL使用1表示true而0表示false表示可以使用:
SELECT
group_id,
SUM(user_id > 0) as count_users,
SUM(user_id = 0) as count_guests
FROM
your_table
GROUP BY
group_id