要创建缺少时间的列表/表格,请执行以下 *** 作:
- 生成现有表的最小值/最大值之间的所有小时数的列表。
- 要使用Snowflake生成该列表,您将需要使用会话变量(因为生成器仅采用常量作为长度。
- 然后使用左联接查找丢失的小时数,查找空值。
使用变量找出开始时间和总小时数:
set (min_hour, total_hours) = ( select min(datehour) min_hour , timestampdiff('hour', min(datehour), max(datehour)) total_hours from stored_hours);
然后对所有小时数的生成表进行左连接,以查找丢失的小时数:
select generated_hour missing_hourfrom ( -- generated hours select timestampadd('hour', row_number() over(order by 0), $min_hour) generated_hour from table(generator(rowcount => $total_hours))) aleft outer join stored_hours bon generated_hour=b.datehourwhere datehour is null;
结果是缺少时间的列表:
(如果输入的是日期,则可以对丢失的日期应用类似的技术)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)