如何在TIMESTAMPS中使用Snowflake中的LAG功能?

贾斯汀·米特

这是我的基本表格的构建方式:

我的用户使用各种操作日期作为时间戳(日期,小时,分钟,秒)。用户的动作间隔几天或几个小时。我正在尝试使用LAG功能为每个用户查找每个动作之间的间隔。当我将时间戳记为DATES时,我在Snowflake中的查询工作正常。但是,当用户在同一天内进行2次操作时,我的时间间隔为0。我想查看基于分钟(或秒,没关系)的时间间隔。这是我在雪花中使用的当前查询:

 SELECT 
    USERS,
  RANK() OVER(PARTITION BY USERS ORDER BY ACTION_DATE ASC) RowNumber,
  CAST(ACTION_DATE AS DATE),
  (CAST(ACTION_DATE AS DATE) - LAG(CAST(ACTION_DATE AS DATE)) OVER (PARTITION BY users ORDER BY ACTION_DATE)) AS TIME_INTERVAL
from TABLE1
ORDER BY 1,2,3;

到目前为止,此查询在Snowflake中运行正常,但我需要能够使用时间戳获取这些时间间隔,而不仅仅是将时间戳转换为日期。

我在Snowflake中得到的错误是:

SQL编译错误:第21位错误第6行函数'-'的无效参数类型:(TIMESTAMP_NTZ(9),TIMESTAMP_NTZ(9))

有人知道我如何将我的滞后功能与时间戳一起使用,或者是否应该使用其他功能?

戈登·利诺夫

如果您希望有所不同,请使用datediff()timestampdiff()几秒钟:

DATEDIFF(second,
         LAG(ACTION_DATE) OVER (PARTITION BY users ORDER BY ACTION_DATE),
         ACTION_DATE
        ) AS DIFF_SECONDS

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Snowflake中使用SUBSTR从值中删除文本?

来自分类Dev

如何在 Oracle 中使用 LAG 获取先前值但未包含在检索到的数据中?

来自分类Dev

如何在SQL SERVER 2008中使用滞后功能

来自分类Dev

如何在Google表格中的Arrrayformula中使用查询功能?

来自分类Dev

如何在SQL Server 2012中使用转换功能?

来自分类Dev

如何在SQL SERVER 2008中使用滞后功能

来自分类Dev

如何在openlayers3中使用Geojson的功能?

来自分类Dev

如何在Snowflake中执行枢轴(计数(*))功能

来自分类Dev

如何在Snowflake中使用横向展平在JSON中爆炸几个列表值JSON?

来自分类Dev

如何在用户定义的函数中使用LAG()?

来自分类Dev

如何在组内的 SQL Server 中使用 LAG?

来自分类Dev

如何在Jquery中使用功能?

来自分类Dev

如何在gnuplot中使用Floor功能

来自分类Dev

如何在功能中使用地图

来自分类Dev

如何在R中使用子功能

来自分类Dev

如何在功能中使用多重处理?

来自分类Dev

如何在Nano中使用撤消功能?

来自分类Dev

如何在VBA中使用“包含”功能?

来自分类Dev

如何在功能组件中使用PanResponder?

来自分类Dev

如何在Nano中使用撤消功能?

来自分类Dev

如何在Android中使用服务功能

来自分类Dev

如何在SQLite中使用删除功能

来自分类Dev

如何在R中使用子功能

来自分类Dev

如何在Android中使用平均功能?

来自分类Dev

如何在静态功能中使用模板?

来自分类Dev

如何在Jquery中使用功能?

来自分类Dev

如何在正常功能中使用$ location

来自分类Dev

如何在Ubuntu中使用链式功能

来自分类Dev

如何在jQuery中使用显示功能?