如何在组

时间:2015-12-28 14:51:40

标签: mysql sql syntax

我想要的SQL是这样的:

SELECT week_no, type,
 SELECT count(distinct user_id) FROM group WHERE pts > 0
FROM base_table
GROUP BY week_no, type

但我知道我可以使用COUNT(DISTINCT user_id)来计算每个组中的用户总数,但我如何计算符合条件的用户数量'pts> 0' ?

我正在使用mysql,

感谢。

3 个答案:

答案 0 :(得分:3)

您可能想要条件聚合:

SELECT week_no, type, COUNT(DISTINCT CASE WHEN pts > 0 THEN user_id END)
FROM base_table
GROUP BY week_no, type;

SqlFiddleDemo

答案 1 :(得分:1)

组的条件是使用"有"条款

SELECT count(user_id)FROM group group by user_id having pts> 0

答案 2 :(得分:0)

SELECT week_no, type, COUNT(DISTINCT user_id )
FROM base_table
where pts > 0
GROUP BY week_no, type

在where子句中过滤用户ID。