如何获取客户购买的第二条记录?

How to get the 2nd record for a customer purchase?

我正在处理客户数据库,我想获取他们第二次购买的所有数据(对于我们所有的客户天气,他们有 2 次或更多次购买)。 例如:

Customer_ID      Order_ID      Order_Date 
1                259           09/05/2020
1                644           03/11/2020
1                617           18/04/2022
4                834           22/09/2021
4                995           07/02/2022

我想显示第二个订单是:

Customer_ID      Order_ID      Order_Date 
1                644           03/11/2020
4                995           07/02/2022

我在寻找正确的逻辑时遇到了一些困难,知道如何实现我的最终目标吗? :)

*注意:我使用的是雪花

您可以使用 ROW_NUMBER 并使用 QUALIFY 子句进行过滤:

select * from table qualify row_number() over(partition by customer_id order by order_date) = 2;

您可以使用常见的 table 表达式

with CTE_RS
AS (
SELECT Customer_ID,ORDER_ID,Order_Date,ROW_NUMBER() OVER(PARTITION BY Customer_ID ORDER BY Order_Date ) ORDRNUM FROM *TABLE NAME*
  )
 SELECT Customer_ID,ORDER_ID,Order_Date
 FROM CTE_RS
 WHERE ORDRNUM = 2 ;