【发布时间】:2021-03-20 07:03:05
【问题描述】:
我有这个数据集:
product customer date value buyer_position
A 123455 2020-01-01 00:01:01 100 1
A 123456 2020-01-02 00:02:01 100 2
A 523455 2020-01-02 00:02:05 100 NULL
A 323455 2020-01-03 00:02:07 100 NULL
A 423455 2020-01-03 00:09:01 100 3
B 100455 2020-01-01 00:03:01 100 1
B 999445 2020-01-01 00:04:01 100 NULL
B 122225 2020-01-01 00:04:05 100 2
B 993848 2020-01-01 10:04:05 100 3
B 133225 2020-01-01 11:04:05 100 NULL
B 144225 2020-01-01 12:04:05 100 4
数据集包含公司销售的产品和看到该产品的客户。一个客户可以看到多个产品,但是产品+客户的组合没有任何重复。我想知道有多少人在客户看到产品之前购买了它。
这将是完美的输出:
product customer date value buyer_position people_before
A 123455 2020-01-01 00:01:01 100 1 0
A 123456 2020-01-02 00:02:01 100 2 1
A 523455 2020-01-02 00:02:05 100 NULL 2
A 323455 2020-01-03 00:02:07 100 NULL 2
A 423455 2020-01-03 00:09:01 100 3 2
B 100455 2020-01-01 00:03:01 100 1 0
B 999445 2020-01-01 00:04:01 100 NULL 1
B 122225 2020-01-01 00:04:05 100 2 1
B 993848 2020-01-01 10:04:05 100 3 2
B 133225 2020-01-01 11:04:05 100 NULL 3
B 144225 2020-01-01 12:04:05 100 4 3
如您所见,当客户 122225 看到他想要的产品时,已经有两个人购买了。以客户 323455 为例,已有两个人购买了产品 A。
我想我应该使用一些窗口函数,比如 lag()。但是 lag() 函数不会得到这个“累积”信息。所以我有点迷路了。
【问题讨论】:
标签: sql count amazon-redshift window-functions lag