+++++++++++++++++++++++++
+ 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 –