我有一个SQL查询,该查询返回三列联系ID,参与人数,参与年份。
根据此查询结果,我需要寻找是否有人多年来参加过一定次数(每年相同次数)的模式。
例如,连续2年或更长时间(每年两次,每年两次)或每年连续3次(每年次数相同)。
从下面的示例中,我希望拉动的联系人为1008637、1009256、1010306和1011263
请让我知道如何实现这一目标。
请参阅图片以获取示例数据。
答案 0 :(得分:0)
您需要两次汇总。一次获取参与人数,然后检查每年的参与人数条件。
select id
from (select id,year,count(*) as num_participations
from tbl
group by id,year
) t
group by id
having count(*) = count(distinct case when num_participations = 2 then year end)