【发布时间】:2016-04-29 17:45:38
【问题描述】:
我在我的表上运行一个查询,使它按升序(从最旧到最新)返回时间戳。就像我写了一行ORDER BY timestamp。
我需要我的结果有一个名为“Days Taken”的列,其中包含每个时间戳之间的差异,即(时间戳 2 - 时间戳 1)、(时间戳 3 - 时间戳 2)、(时间戳 4 - 时间戳 3)等等。如何使用 SQL 执行此操作?
value timestamp Days Taken
2 2016-03-16 05:11:40 -
3 2016-03-18 03:46:42 ?
4 2016-03-18 04:09:44 ?
5 2016-03-21 04:01:46 ?
6 2016-03-22 04:38:17 ?
我无法将列 value 用作索引,因为它被定义为字符串而不是 int,这就是为什么 this 对我不起作用。 Days Taken 是我要计算的值。
编辑添加:我正在为 Vertica 运行 DbVisualizer,它似乎不支持 ON 子句中的子查询。
【问题讨论】:
-
阅读手册会告诉你
DATEDIFF()函数。 -
是的,我应该更清楚。我知道该功能,但我不确定如何在同一查询的多行之间执行
DATEDIFF()。自加入? -
那么您的架构是什么样的?编辑您的问题并添加,如果可以的话,它会让您想做的事情更加清晰。
-
@tadman 我已经把它放进去了,希望它更清楚一点!