【发布时间】:2016-11-21 03:25:59
【问题描述】:
我有下表 -
UserId Some_Value1 Datetime
1 0 24-11-2016 13:00
1 0 24-11-2016 13:45
1 1 24-11-2016 15:00
1 1 24-11-2016 17:15
2 0 25-11-2016 11:23
2 1 25-11-2016 13:22
2 0 25-11-2016 14:01
2 1 25-11-2016 18:00
如您所见 - 当上一行的日期时间值大于 1 Hour 相同的 userId 时,Some_Value1 中的值是 1
当datetime 字段大于1 Hour 时,我正在尝试获取序列号而不是1 和0。
类似于下面的结果 -
UserId Some_Value1 Datetime Some_Value2
1 0 24-11-2016 13:00 1
1 0 24-11-2016 13:45 1
1 1 24-11-2016 15:00 2
1 1 24-11-2016 17:15 3
2 0 25-11-2016 11:23 1
2 1 25-11-2016 13:22 2
2 0 25-11-2016 14:01 2
2 1 25-11-2016 18:00 3
我正在尝试使用postgres 或Redshift 来实现这一目标。标记Oracle 和Mysql 以覆盖更多受众并获得SQL 的伪代码查询对于所有数据库来说几乎都是相同的,除了内置函数。
以上所有数据仅供参考。这只是样本数据,真实场景会有更多随机数据。因此代码需要是动态的而不是硬编码的。
【问题讨论】:
-
你的假设是错误的。删除了错误的数据库标签。
标签: sql postgresql amazon-redshift