gpt4 book ai didi

mysql - 一组的第二个和第三个日期时间的平均时间差

转载 作者:行者123 更新时间:2023-11-29 07:21:05 26 4
gpt4 key购买 nike

我需要找到客户的第二个订单和第三个订单之间的平均天数

我知道我需要使用 timestampdiff 但我对如何选择第二个和第三个日期以及需要某种嵌套感到很困惑。

SELECT CustomerID, 
OrderDate,
diff,
avg(timestampdiff(day, start_date, end_date)) AS average_days
FROM () o3
WHERE date3, date2
ORDER BY CustomerID, OrderDate;

表格

enter image description here

最佳答案

要获得所需结果,您首先需要根据 CustmerId 数据 PARTITION 计算 ROW_NUMBER。然后仅使用 RowNumber IN (2,3) 保留行,然后在两天之间获取 DateDiff。以下查询将有助于获得您想要的结果-

SELECT CustomerID,datediff(MAX(OrderDate),MIN(OrderDate)) 
FROM
(
SELECT *,
@row_num :=IF(@prev_value = concat_ws('',CsutomerID),@row_num+1,1)AS RowNumber
, @prev_value := concat_ws('',CsutomerID)
FROM your_table A
ORDER BY CustomerID,OrderDate
)B
WHERE B.RowNumber IN (2,3)
GROUP BY CustomerID;

关于mysql - 一组的第二个和第三个日期时间的平均时间差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56334865/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com