我要计算从订单到到达状态所用的每个唯一名称的时间差/日期差。
输入Dataframe如下
+------------------------------+
| Date | id | name |staus
+------------------------------+
| 1986/10/15| A |john |order
| 1986/10/16| A |john |dispatched
| 1986/10/18| A |john |arrived
| 1986/10/15| B |peter|order
| 1986/10/16| B |peter|dispatched
| 1986/10/17| B |peter|arrived
| 1986/10/16| C |raul |order
| 1986/10/17| C |raul |dispatched
| 1986/10/18| C |raul |arrived
+-----------------------------+
预期的输出数据集应该类似于
+---------------------------------------------------+
| id | name |time_difference_from_order_to_delivered|
+---------------------------------------------------+
A | john | 3days
B |peter | 2days
C | Raul | 2days
+---------------------------------------------------+
I am stuck on what logic to implement
2条答案
按热度按时间oknrviil1#
您可以按分组并使用条件聚合计算日期差异:
您还可以直接减去日期,这将返回一个间隔类型列:
rkue9o1l2#
假设ordered是最早的日期,delivered是最后的日期,只需使用聚合和
datediff()
:为了更精确,可以使用条件聚合: