需要帮助。我从oracle导入到tableau有一组数据用于计算。但是为了做到这一点,我需要复制下表中所示的图表。例如,如果在开始和结束之间有日期差异,那么我需要复制它并根据有多少日期差异分配代码0,1。目的是我需要在Tableau中使用此函数进行时间间隔计算。谢谢
答案 0 :(得分:3)
预先生成最大可能值的代码,并将原始表加入代码序列,以便根据特定行上日期之间的差来确定行重复次数:
with t (s,e) as (
select timestamp '2020-08-16 18:30:00', timestamp '2020-08-16 20:00:00' from dual union all
select timestamp '2020-08-17 08:00:00', timestamp '2020-08-18 08:00:00' from dual union all
select timestamp '2020-08-19 08:00:00', timestamp '2020-08-19 00:00:00' from dual union all
select timestamp '2020-08-20 10:00:00', timestamp '2020-08-22 03:00:00' from dual
), series (code) as (
select level - 1 from dual connect by level <= (select count(*) from t)
)
select t.*, series.code
from t
join series on trunc(e) - trunc(s) >= series.code
order by s,code;