[英]how to select third, fourth, fifth date in sql using window function
电影的表出租有这样的数据:
rental_id rental_ts inventory_id customer_id return_ts
11909 2/14/2020 871 474 3/15/2020
12222 2/14/2020 3949 22 4/18/2020
如何生成对:
第一次出租_ts,第二次出租日期,
第二次出租,第三次出租日期,....
第二个 LAST 租借日期,最后租借日期,
最后出租日期,null?
使用 window 功能 - 这不起作用:
select
customer_id,
rental_ts as first_rental_date ,
lead(rental_ts) over(partition by customer_id order by rental_ts) as second_rental_date,
lead(lead(rental_ts) over(partition by customer_id order by rental_ts)) as third_rental_date
from rental
我预计:
customer_id , rental_date, second_rental_date, third_rental_date ... second_last_rental_date, last_rental_date
1 2/14/2020 1/14/2020 12/13/2019 12/13/2019
2 5/16/2020 5/13/2020 5/07/2020 4/29/2020
基本上我需要超过 1 级返回 - 但不知道如何使用它,我只在工作中使用 1 个前导()或滞后()来比较当前和以前的日期
不需要用动态pivot吗? 但如果你想要这种方式,那么你可以使用lead(rental_ts,2)、lead(rental_ts,3)等......
select
customer_id,
rental_ts as first_rental_date ,
lead(rental_ts) over(partition by customer_id order by rental_ts) as second_rental_date,
lead(rental_ts,2) over(partition by customer_id order by rental_ts) as third_rental_date
from rental
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.