【发布时间】:2020-08-14 20:40:21
【问题描述】:
在如下数据框中:
id date product
1 2010-02-01 c
1 2010-02-02 v
1 2010-02-03 d
1 2010-02-04 g
2 2010-02-03 h
2 2010-02-04 w
2 2010-02-05 t
2 2010-02-06 d
3 2010-02-04 x
3 2010-02-05 f
3 2010-02-06 x
我想添加另一列,给出用户在最短日期使用的产品。所以它需要像下面这样:
id date product early_product
1 2010-02-01 c c
1 2010-02-02 v c
1 2010-02-03 d c
1 2010-02-04 g c
2 2010-02-03 h h
2 2010-02-04 w h
2 2010-02-05 t h
2 2010-02-06 d h
3 2010-02-04 x x
3 2010-02-05 f x
3 2010-02-06 x x
我知道我需要使用窗口功能并从下面的那个开始。但这将为我提供每个用户的最早日期。我需要为用户找到最早使用的产品:
min(date) over (partition by id) as earliest_date
【问题讨论】:
-
你不是已经问过同样的问题了吗?
-
我做了,但有人将它标记为重复,尽管它不是。
-
那是我,我又做了一次。您需要日期最短的行中的产品。另一个问题解释了如何按用户获取该行。
-
但是我想用一个窗口函数来解决它以用于学习目的,而且我的实际查询比这个大得多,所以使用这种方式效率不高。
-
另一个问题有使用窗口函数的答案。