(专栏)组成一个,数到两个

时间:2014-08-21 08:16:11

标签: mysql

如何构建一个按一列group_id分组的查询,但计入两列?

我有下表。

---------------------
 user_id  | group_id
---------------------
 1        | 6
 0        | 6
 0        | 6
 2        | 8
 3        | 8
 0        | 7
 4        | 9

我希望结果显示如下。下面的条件是count_usersuser_id大于但不等于0的条件,count_guestsuser_id等于0的条件。 / p>

---------------------------------------
 group_id | count_users | count_guests
---------------------------------------
 6        | 1            | 2
 8        | 2            | 0
 7        | 0            | 1
 9        | 1            | 0

1 个答案:

答案 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

Demo