sql - 获取聚合值

标签 sql postgresql amazon-redshift

我有下表 -

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 小时 时,Some_Value1 中的值为 1相同的 userId

datetime 字段大于 1 小时时,我试图获取序列号而不是 10

类似于下面的结果 -

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

我正在尝试使用 postgresRedshift 来实现这一点。标记 OracleMysql 以覆盖更多受众并获取伪代码作为 SQL 查询对于所有数据库来说都是相同的,除了内置函数.

以上所有数据仅供引用。这只是样本数据,真实场景会有更多随机数据。因此,代码需要是动态的,而不是硬编码的。

最佳答案

sum (Some_Value1) over 
(
    partition by UserId 
    order by     Datetime 
    rows         unbounded preceding
) + 1                                 as Some_Value2

关于sql - 获取聚合值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40712293/

相关文章:

c# - sql插入asp.net

sql - SSRS查询分页

PGAdmin 中的 PostgreSQL 语法错误

mysql - 在最后一行除外的情况下使用滞后函数

sql - 奇怪的窗口函数行为

sql - 我可以计算 postgres 数组字段的出现次数吗?

postgresql - Postgres 不在区间查询中使用部分时间戳索引(例如,now() - 区间 '7 days')

python - Google App Engine Django App Admin 登录导致 502

mysql - 从 S3 文件构建临时表到 Redshift

amazon-web-services - 是否可以在同一集群中的两个不同 AWS Redshift 数据库之间运行连接?