Sql 在db2中使用row_number()

Sql 在db2中使用row_number(),sql,db2,Sql,Db2,我有以下数据,每当出现userid+customerid组合时,我都会尝试统计每条记录。如果相同的组合在其他组合之间返回,我想再次从一个组合开始计数器。然而,当我在Db2中的以下代码中使用row_number()时,我似乎无法让它工作,因此计数器会在一段时间内以1重新启动,每个userid+customerid出现。有人有其他建议吗?非常感谢你 输出: 此处演示: 请注意,演示使用的是SQL Server,因为DB2不是Rextester的选项(至少目前是这样)。但是,假设ROW\u NU

我有以下数据,每当出现userid+customerid组合时,我都会尝试统计每条记录。如果相同的组合在其他组合之间返回,我想再次从一个组合开始计数器。然而,当我在Db2中的以下代码中使用row_number()时,我似乎无法让它工作,因此计数器会在一段时间内以1重新启动,每个userid+customerid出现。有人有其他建议吗?非常感谢你

输出:

此处演示:

请注意,演示使用的是SQL Server,因为DB2不是Rextester的选项(至少目前是这样)。但是,假设
ROW\u NUMBER()
在两个数据库中的行为相同,则查询应该在DB2中工作

输出:

此处演示:


请注意,演示使用的是SQL Server,因为DB2不是Rextester的选项(至少目前是这样)。但是,假设两个数据库中的
ROW\u NUMBER()
行为相同,那么查询应该可以在DB2中工作。

非常感谢您,Tim!这是有效的:D。同样,谢谢你对后期编辑的建议。非常感谢你,蒂姆!这是有效的:D。同样,谢谢你对后期编辑的建议。
select userid, customer, event_name, event_timestamp,     
       row_number() over (partition by user_id, customer_number
                          order by  event_timestamp) as steps_rownum
from trackhist
order by userid, event_timestamp;
select userid, customer, event_name, event_timestamp,
       row_number() over (partition by userid, customer, grp
                          order by event_timestamp) as steps
from
(
    select t.*,
           (row_number() over (order by event_timestamp) -
            row_number() over (partition by userid, customer order by event_timestamp)
           ) as grp
    from trackhist t
) t
order by userid, event_timestamp