-- 获取当前日期的前两个工作日是哪天 2022-04-07 llq
with tmp as(
select
cur_date,
if_workday,
sum(if_workday) over(order by cur_date asc) lg
FROM
(
select cur_date,
case when is_workday = 1 then 1
else 0 end as if_workday
from dim_com_date_info f1
) t order by cur_date asc
)
select a.*,b.cur_date
from tmp a
left join tmp b on if(a.if_workday=1,(a.lg-2),(a.lg-1)) = b.lg
and b.if_workday = 1
结果如图所示: