【问题标题】:Get average from column gruped by date从按日期分组的列中获取平均值
【发布时间】:2023-01-19 20:11:00
【问题描述】:

我有查询问题。我有这样的数据:

value timestamp
22.12 2023-01-18T08:00:35.000Z
22.18 2023-01-18T09:13:12.000Z
22.15 2023-01-18T09:16:12.000Z
22.17 2023-01-18T09:49:35.000Z
16.12 2023-01-25T10:15:05.000Z
26.18 2023-01-25T10:40:05.000Z
25.52 2023-01-25T10:55:05.000Z
19.88 2023-01-26T11:40:05.000Z
16.12 2023-01-16T12:40:05.000Z

是否可以编写查询以获得按日期分组的平均值? 例如:

2023-01-18 - average: 22
2023-01-25 - average: 19

【问题讨论】:

  • 你能标记你的数据库管理系统吗?为什么 2023-01-25 的平均值应该是 19?根据您的示例数据,该日期的平均值为 22.61。对于你没有一天,平均值是 19。

标签: sql


【解决方案1】:

将时间戳转换为日期值并在GROUP BY 中使用它。

询问

select cast(timestamp as date) as dt, AVG(value) as avg_val
from tbl_name
group by cast(timestamp as date);

【讨论】:

  • 谢谢你。它很好用。我还有一个问题。平均值分组后是否可以只显示日期而不显示时间?
【解决方案2】:

我还有一个问题。平均值分组后是否可以只显示日期而不显示时间?

2023-01-18 而不是 2023-01-18T08:00:35.000Z

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-29
    • 2021-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-09
    • 1970-01-01
    • 2020-02-14
    相关资源
    最近更新 更多