一共有job数为:86
周期可以重复计算
bug1:
where month(send_time)=month('{STAT_DATE}')-1
当month为1时,会得出结果为0.
所以要改为:
where month(send_time)=case (month('{STAT_DATE}')-1 ) when 0 then 12
上周逻辑
周期计算中的上周,若是2013年的第一周上周即是2012年的第52周。一年有53个周,其中第53周和
1911-12-31 周日
53周
if 最后一天不是周日:
weakofyear(2012-12-31)-1
else
weakofyear(2012-12-31)
CASE weekofyear('2013-01-01') WHEN 0 THEN weekofyear(concat_ws('-',cast(year('2013-01-01')-1 as string),'12','31')) WHEN 1 THEN (weekofyear(concat_ws('-',year('2013-01-01')-1,'12','31'))-1) ELSE weekofyear('2013-01-01') END, IF(weekofyear('2013-01-01')<2, year('2013-01-01')-1, year('2013-01-01'))
where weekofyear(send_time)=weekofyear(date_sub('{STAT_DATE}',7)) and year(send_time)=year(date_sub('{STAT_DATE}',7))
上月逻辑
where month(send_time)=IF(month('{STAT_DATE}')=1,12,month('{STAT_DATE}')-1) and year(send_time)=IF(month('{STAT_DATE}')=1,year('{STAT_DATE}')-1,year('{STAT_DATE}'))
本周逻辑
where weekofyear(send_time)=weekofyear('{STAT_DATE}') and year(send_time)=year('{STAT_DATE}')