sql - 获取每天的平均值 - SQL
问题描述
我有一个时间戳字段,我想找到每天花费的平均时间。
让我们说:
created: 2020-01-01 23:15:44
Resolved: 2020-01-04 12:00:00
我需要我的输出是:
Date Mins
2020-01-01 45
2020-01-02 1440
2020-01-03 1440
2020-01-04 720
我已经建立了一个日历表,但我不知道如何使用它。
解决方案
您可以加入日历表并计算日期范围开始和结束的不同时间。
select c.[date] as [Date],
case when c.[date] = convert(date, t.created)
then datediff(minute, t.created, dateadd(day, 1, c.[date]))
when c.[date] = convert(date, t.resolved)
then datediff(minute, c.[date], t.resolved)
else 1440
end AS [Mins]
from yourtable t
inner join calendar c on c.[date] >= convert(date, t.created)
and c.[date] <= convert(date, t.resolved)
如果您需要平均值,只需使用GROUP BY
并AVG()
相应地
推荐阅读
- java - Android MVVM RecyclerView ClickListener Kotlin 到 Java 的转换
- c++ - QML 中的复选框和 SQLite
- java - JPA 实体和关系 OneToMany、ManyToOne、ManyToMany - 良好实践
- sql - 运行总计 - 找到运行总计为 X 的日期
- java - 使用 .map() 编写 for 循环
- ios - 关闭工作表后 SwiftUI 重新加载视图
- django - 一次上传多张图片django
- javascript - 如何在反应中使用带有变量名的require()?
- quarkus - Quarkus:将消息路由到 ActiveMQ
- visual-studio - VisualStudio 19 不断删除 Nuget 包