【发布时间】:2017-07-14 17:43:14
【问题描述】:
我的数据如下:
Pagetype member_id created_at rownum
A 2 date 1
B 2 date 2
C 2 date 3
D 4 date 1
B 4 date 2
R 4 date 3
B 13 date 1
S 13 date 2
B 13 date 3
我想在其中添加另一列,如下所示:
Pagetype member_id created_at rownum DesiredRownum
A 2 date 1 -1
B 2 date 2 0
C 2 date 3 1
D 4 date 1 -1
B 4 date 2 0
R 4 date 3 1
B 13 date 1 0
S 13 date 2 1
B 13 date 3 2
每当PageType 是给定member_id 的B 时,我想将值0 分配给这个DesiredColumn。对于任何 member_id,在 B 之前的任何 PageType 值都应分配为负值,对于任何 member_id,在 B 之后的任何 PageType 值都应分配为递增的正值。
我用来获取数据的查询如下:
select pagetype,
member_id,
created_at,
row_number() over(partition by member_id order by created_at)
from table
order by member_id,
created_at
如何将此新列添加到我的数据中?
编辑:略有变化。 PageType 可以为任何给定用户重复。例如,PageType B 重复 member_id 13。在这种情况下,我们希望计算 B 第一次出现的值。
【问题讨论】:
标签: sql postgresql amazon-redshift