我很感激任何意见。我将几个问题组合成一个简单的查询。
假设表T1记录了由ID标识的员工随时间的收入增长。表中每天有一个ID和收入。
如果他们的基线收入(7天窗口的初始收入)大于10,我想在每天每位员工旁边创建另一列,我会在7天的预见窗口中找到他们的最高收入,如果他们在7天的收入前瞻窗口大于基线收入。我也只对创建2016年前期记录的最高收入感兴趣。
下面的查询是否正确?
select ID,income,Date,max(income2)
from ( select T1.ID , T1.income, T1.Date , T2.income as income2
From T1
left join T1 as T2
on T1.ID = T2.ID
and T2.date between T1.Date and T1.Date + 7
and T1.income > T2.income
and T1.income > 10
where T1.date > DATE('2016-01-01') ) g
group by T1.ID , T1.income, T1.Date