当前位置: 首页 > 面试题库 >

SQL查询以查找日期之间的差异的平均值

毕嘉
2023-03-14
问题内容

我有一列的数据像

Date
13/8/2011
2/9/2011
10/9/2011
20/9/2011

我需要编写一个SQL查询/过程,这将有助于我获取日期之间差异的平均值。对于上面的示例,它将是 (19 + 8 + 10)/3=12.33。
请提供帮助。

在此先感谢Geetha


问题答案:

我不知道您的RDBMS,但这是来自SQL Server。另外,您的计算之一是错误的-02/09/2011-13/08/2011是20,而不是19。

create table dates (
    myDate  date
)

insert into dates
values ({d '2011-08-13'}), 
    ({d '2011-09-02'}), 
    ({d '2011-09-10'}), 
    ({d '2011-09-20'})

;with orderedDates as (
    select ROW_NUMBER() OVER (order by myDate) as row, myDate
    from dates
), datediffs as (
    select DATEDIFF(dd, o2.myDate, o1.myDate) as diff
    from orderedDates o1 left outer join
        orderedDates o2 on o1.row = o2.row + 1
)
select AVG(cast(diff as decimal))
from datediffs
where diff is NOT NULL

产生的结果是12.667:(20 + 8 + 10)/ 3。



 类似资料:
  • 问题内容: 我有一个和。我想获取这两个日期之间的日期列表。谁能帮助我指出查询中的错误。 这是一个变量。 问题答案: 您应该将这两个日期放在单引号之间,例如。 或可以使用 请记住,第一个日期是包含日期,但第二个日期是排除日期,因为它实际上是“ 2011/02/27 00:00:00”

  • 我刚开始使用普罗米修斯,我正在尝试理解一些事情。 我有一个Java的web应用程序,它公开了一个叫做“my_counter”的计数器。 下面的查询有什么区别? 如果我在1小时的相同时间间隔内运行这些查询,为什么两个查询返回不同的结果? 我试图实现的是看看计数器在一个可配置的时间段内增加了多少。 多谢了。 附注。我实际上使用Grafana来运行查询并选择时间范围。

  • 问题内容: 我在使用Excel和Access数据库在VBA中进行sql查询时遇到问题。在mi VBA代码中,我有两个具有以下内容的数据变量: DateMin = 31/07/2014 22:00:00 DateMax = 01/08/2014 06:00:00 而且我有一个访问数据库,其中包含许多带有日期字段的数据。我试图从数据库中提取两个变量之间具有日期的数据,并对此进行编码: 但是不起作用。结

  • 我需要从使用Hibernate映射到Java的PostgreSQL数据库中检索记录的平均日期差(您可能会说开始和结束)。 我编写了一个本机PostgreSQL查询,效果很好: 问题是,由于部分的原因,我无法理解如何将此查询转换为HQL(Hibernate SQL)。 我需要在前端显示信息,这是我用JSF Primeface构建的。 备注:dataEntrada-指起始日期(种类)。dataSaid

  • 我有一个实体,它有一个表示上次活动的日期对象。我想查询一下平均空闲时间。因此在SQL中,类似于: 我试着这样算了一下差别: 我如何以日期/时间差(以秒为单位)来表示这个平均值?

  • 我们从外部来源发送两个日期作为字符串。然后我们计算日期之间的差异,看看它们工作了多少小时。 由于时间的变化,一年两次——我们的计算会出错。我们使用Java。你怎么解决这样的问题? 这两个日期以字符串形式出现在一个文件中,格式如下。“2019-10-07上午11:07”