![](/img/trans.png)
[英]Count the occurrencesfor the previous 10 days grouped by id? SQL Big Query
[英]SQL - number of days between dates grouped by id
我有这个数据,其中每一行代表一个客户的交易:
Date Client
2022-01-30 A
2022-01-16 A
2022-01-15 A
2022-03-15 B
2022-02-15 B
2022-03-02 C
我正在寻找Number of days
,它是自该客户上次交易以来的天数。
Date Client Number of days
2022-01-30 A 14
2022-01-16 A 1
2022-01-15 A NULL
2022-03-15 B 30
2022-02-15 B NULL
2022-03-02 C NULL
我试过这样的事情:
ROW_NUMBER() OVER (PARTITION BY Client ORDER BY Date DESC) AS Number_of_days
但是我被困在ROW_NUMBER()
因为我不能在每个日期 select 并计算差异。
有什么建议么?
你可以尝试使用LEAD window function
SELECT *,
DATE_DIFF(Date , LEAD(Date) OVER(PARTITION BY Client ORDER BY Date DESC),DAY)
FROM T
使用滞后()
select Client,d,
DATE_DIFF(d,lag(d)over(partition by Client order by d desc),DAY) as dys from table_name
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.