在 SQL 中选择日期之间的平均差异

Posted

技术标签:

【中文标题】在 SQL 中选择日期之间的平均差异【英文标题】:Select average difference between dates in SQL 【发布时间】:2020-12-02 04:33:08 【问题描述】:

我有一个事务表,其中每个条目都是一个事务;其中一个字段是日期字段。

我想从带有 WHERE 条件的事务表中选择一些信息,我想要的一件事是日期之间的平均差异。实际上,我试图找到满足我条件的交易的平均频率,即

SELECT (average_date_difference) FROM transactions WHERE customerID = xyz;

显然,(average_date_difference) 将是一些 SQL 语句。所以我的问题是,SQL 有办法轻松选择它吗?或者我是否需要以某种方式以编程方式实现它?谢谢!

例子:

客户 ID |日期

c1 | 2020 年 11 月 25 日

c1 | 21/11/2020

c1 | 2020 年 11 月 18 日

25 - 21 = 4
21 - 18 = 3
(3 + 4) / 2 = 3.5
(average_date_difference) = 3.5 days (expected output)

【问题讨论】:

此答案适用于 MS SQL,但应该对您有所帮助:***.com/questions/9994862/… 具有预期输出的样本数据将有助于更好地了解您的问题 添加了一些示例数据和预期的输出欢呼 【参考方案1】:
SELECT avg( datediff(date, lag(date) over (partition by customerID order by date)) )
FROM transactions
WHERE customerID = 'c1';

【讨论】:

以上是关于在 SQL 中选择日期之间的平均差异的主要内容,如果未能解决你的问题,请参考以下文章

在 db2 SQL 中选择日期范围

在原则 2 中选择日期之间的条目

SQL Server 2008 仅从字段中选择日期 [重复]

在日期选择器中选择日期之前触发功能

在日期选择器中选择日期后如何打开时间选择器

两个月,同时在引导程序的日期选择器中选择日期