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

SQL如何基于date和hash两列计算重复记录的average字段平均值

多维度分组求均值SQL写法

你需要的是按date和hash两个字段的联合分组做聚合,直接用基础的GROUP BY语法即可实现,不需要用窗口函数,正确语句如下:

SELECT
  AVG(average) AS average,
  date,
  hash
FROM testing
GROUP BY date, hash
ORDER BY date, hash;

语法说明

  • GROUP BY后可以跟多个字段,会按多个字段的唯一组合进行分组,正好满足你同时按date、hash两个维度去重统计的需求,每一组对应date和hash值都完全相同的所有记录
  • AVG(average)会对每组内的average字段计算平均值,输出的结果就是每个date+hash分组对应的平均数值,和你给出的期望输出完全匹配

你之前写法的问题

你尝试的窗口函数写法有两个问题:

  • 分区仅指定了wthr_date(也就是date字段),没有加入hash维度,所以统计的是单日所有记录的平均值,不是按date+hash分组的均值
  • 窗口函数不会压缩结果行数,会保留原表所有记录,不会实现去重效果,不符合你每个date+hash只返回一条记录的需求

如果你实际表中的日期列名为wthr_date、数值列名为avg_tmpr_c(和你之前测试代码里的列名一致),把对应字段替换即可:

SELECT
  AVG(avg_tmpr_c) AS average,
  wthr_date AS date,
  hash
FROM testing
GROUP BY wthr_date, hash
ORDER BY wthr_date, hash;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 08:06:04