+++++++++++++++++++++++++
+ id | event | group_id +
+ 1 | '+1' | 1 +
+ 2 | 'pt' | 1 +
+ 3 | 'pt' | 1 +
+ 4 | '+1' | 1 +
+ 5 | 'pt' | 1 +
+ 6 | '+1' | 1 +
+ 7 | 'pt' | 1 +
+ 8 | '+1' | 1 +
+++++++++++++++++++++++++
,我需要选择SUM(CASE WHEN event = '+1' THEN 1 ELSE 0 END)
因为SUM(CASE WHEN event = 'pt' THEN 1 ELSE 0 END) = 3
。
我尝试这样做:
SELECT group_id, SUM(CASE WHEN event = '+1' THEN 1 ELSE 0 END) AS event_sum
FROM Table
WHERE SUM(CASE WHEN event = 'pt' THEN 1 ELSE 0 END) >= 3
ORDER BY id
GROUP BY group_id
但这不是组功能的工作方式,所以我怎么能做到这一点的输出?当条件SUM(CASE WHEN event = 'pt' THEN 1 ELSE 0 END) = 3
为真时,是否需要使用用户变量来选择ID?我相信没有用户变量就可以做到这一点,有可能吗?
所需的输出:
++++++++++++++++++++++++
+ group_id | event_sum +
+ 1 | 2 +
++++++++++++++++++++++++
首先总结其中event = pt标记为临时表,然后从temp中选择并计数,其中event> = 3 –