我迫切需要你的大脑帮助来解决我现在遇到的一个SQL问题。
我有一个非常简单的表,由两列组成:客户#和采购日期。
我想再添加一列,以显示自每个客户#的上一个采购日期过去了多少天。下面是我当前创建起始表的查询。
select client_id, purchasing_date
from sales.data
结果看起来像这样(显然,我需要更多声望才能发布图片): https://imgur.com/a/IP1ot
右侧突出显示的列是我要创建的列。 基本上,它显示自每个客户#的上一个购买日期以来经过的天数。对于每个客户的第一次购买,它将只是0。
我不确定我是否已经解释得足以帮助您制作解决方案 - 如果您有任何疑问,请告诉我们。
谢谢!
答案 0 :(得分:2)
使用lag()
:
select client_id, purchasing_date,
(purchasing_date -
lag(purchasing_date, 1, purchasing_date) over (partition by client_id
order by purchasing_date
)
) as day_diff
from sales.data