You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改SQL查询以获取每月的平均CurrentPrice值?

解决按月计算平均价格的问题

你需要修改GROUP BY子句,移除CurrentDate字段,只保留与年、月相关的分组项,这样就能按月聚合计算平均价格:

SELECT        
    DATENAME(month, CurrentDate) AS MonthName, 
    DATENAME(year, CurrentDate) AS Year, 
    MONTH(CurrentDate) AS MonthNumber, 
    CAST(AVG(CurrentPrice) AS DECIMAL(18, 2)) AS Price
FROM
    dbo.Prices
GROUP BY 
    DATENAME(year, CurrentDate), 
    MONTH(CurrentDate), 
    DATENAME(month, CurrentDate)

原因说明

原来的查询中,GROUP BY包含了CurrentDate,这会让分组粒度精确到每个具体的日期(甚至时间点),所以计算出的是单日的平均价格。而同一月份的所有记录,DATENAME(year, CurrentDate)、MONTH(CurrentDate)、DATENAME(month, CurrentDate)这三个值完全一致,以此作为分组依据,就能将同一月份的所有数据归为一组,从而得到整月的平均价格。

另外,你最初的查询里的DISTINCT是多余的,GROUP BY本身就会返回唯一的分组结果,去掉后也能得到每月一行的结果。

内容的提问来源于stack exchange,提问作者MTplus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 23:05:28