【问题标题】:SQL query with group by month and calculate AVG in SQL Server按月分组的 SQL 查询并在 SQL Server 中计算 AVG
【发布时间】:2014-11-07 01:08:53
【问题描述】:

我在 SQL Server 中有 3 个字段 A01、A02、时间
我想了解 2013/6 到 2013/10 的 AVG(A01+A02) 领域
并且时间字段的格式是 yyyymmddhhmmss(ex:20131202013000)
我想按月对 AVG(A01+A02) 的结果进行分组
所以这个问题应该是5个结果

应该是什么sql查询?

【问题讨论】:

  • 为什么将时间存储为字符串?
  • 我不知道为什么,这些数据库来自另一个地方,它们存储时间格式是这样的......

标签: sql-server


【解决方案1】:

我对sql-server不熟悉。但这可能对你有用。

SELECT convert(varchar(6), time, 112) as year_month, AVG(A01+A02)  as a_avg 
from yourtable GROUP BY year_month

我创建了一个SQLFIDDLE,看看它是如何工作的。

【讨论】:

    【解决方案2】:

    我找到了关于这个问题的答案,我的朋友告诉我试试 substring 它有效

    选择平均(A01+A02) FROM my_table '201305%' 和 '201311%' 之间的时间 GROUP BY SUBSTRING(time, 1, 6)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-25
      • 1970-01-01
      • 2021-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多