Oracle SQL - 计算不同用户ID

时间:2018-01-23 21:50:27

标签: sql oracle

我迫切需要你的大脑帮助来解决我现在遇到的一个SQL问题。

我有一个非常简单的表,由两列组成:客户#和采购日期。

我想再添加一列,以显示自每个客户#的上一个采购日期过去了多少天。下面是我当前创建起始表的查询。

select client_id, purchasing_date
from sales.data

结果看起来像这样(显然,我需要更多声望才能发布图片): https://imgur.com/a/IP1ot

screenshot

右侧突出显示的列是我要创建的列。 基本上,它显示自每个客户#的上一个购买日期以来经过的天数。对于每个客户的第一次购买,它将只是0。

我不确定我是否已经解释得足以帮助您制作解决方案 - 如果您有任何疑问,请告诉我们。

谢谢!

1 个答案:

答案 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