我有下表。我们称之为orders
。我想在此现有表中添加一个新列,该列通过customerid计算距首次订购日期的天数。如果距离最低销售日期还有0天,则应为0。
从此
customerid orderdate
1 1/21/2018
1 1/21/2018
1 2/21/2018
1 5/22/2018
2 3/22/2018
3 4/5/2018
3 4/5/2018
对此
customerid orderdate daysapart
1 1/21/2018 0
1 1/21/2018 0
1 2/21/2018 30
1 2/21/2018 123
2 3/22/2018 0
3 4/5/2018 0
3 4/5/2018 0
答案 0 :(得分:1)
使用窗口聚合:
select customerid, orderdate,
orderdate - min(orderdate) over (partition by customerid) as daysapart
from mytab
答案 1 :(得分:0)
这是使用相关子查询的一种方法:
SELECT
t1.customerid,
t1.orderdate,
t1.orderdate - (SELECT MIN(t2.orderdate)
FROM your_table t2
WHERE t1.customerid = t2.customerid) daysapart
FROM your_table t1;