gpt4 book ai didi

mysql - 如何获取多个日期之间的平均时间

转载 作者:行者123 更新时间:2023-11-29 16:14:36 25 4
gpt4 key购买 nike

我想做的是根据客户的交易频率对他们进行分类。我记录了他们每次交易的日期,但我无法计算出每个日期之间的平均增量。我实际上想要的是一张显示我的表格:

| User | Average Frequency
| 1 | 15
| 2 | 15
| 3 | 35
...

我当前拥有的数据格式如下:

| User | Transaction Date
| 1 | 2018-01-01
| 1 | 2018-01-15
| 1 | 2018-02-01
| 2 | 2018-06-01
| 2 | 2018-06-18
| 2 | 2018-07-01
| 3 | 2019-01-01
| 3 | 2019-02-05
...

基本上,每个客户都会有多个交易,我想了解如何获取每个日期之间的增量以及增量的平均值。

我知道 datediff 函数及其工作原理,但我不知道如何将它们拆分为事务。我还知道 Looker 等工具中提供了 offset 函数,但我不知道其背后的语法。

谢谢

最佳答案

在 MySQL 8+ 中,您可以使用 LAG获取延迟的交易日期,然后使用DATEDIFF获取两个连续日期之间的差异。然后您可以取这些值的平均值:

SELECT User, AVG(delta) AS `Average Frequency`
FROM (SELECT User,
DATEDIFF(`Transaction Date`, LAG(`Transaction Date`) OVER (PARTITION BY User ORDER BY `Transaction Date`)) AS delta
FROM transactions) t
GROUP BY User

输出:

User    Average Frequency
1 15.5
2 15
3 35

Demo on dbfiddle.com

关于mysql - 如何获取多个日期之间的平均时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54943917/

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