识别丢失的时间-找到时间间隔

识别丢失的时间-找到时间间隔,第1张

识别丢失时间-找到时间间隔

要创建缺少时间的列表/表格,请执行以下 *** 作:

  • 生成现有表的最小值/最大值之间的所有小时数的列表。
  • 要使用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;

结果是缺少时间的列表:

(如果输入的是日期,则可以对丢失的日期应用类似的技术)



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5673903.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存