繁体   English   中英

如何使用 window ZC1C425268E68385D14AB5074C17A sql 中的 select 第三、第四、第五个日期

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM