+++++++++++++++++++++++++
+ 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 = 'pt' THEN 1 ELSE 0 END) = 3
以来SUM(CASE WHEN event = '+1' THEN 1 ELSE 0 END)
を選択する必要があります。
私はこの試みた:
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 +
++++++++++++++++++++++++
ここで、イベント= ptは一時テーブルとしてマークし、イベント> = 3のtempから選択してカウントします –