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

如何按tag分组计算value平均值?SQL分组统计技术问询

解决按分组计算平均值的SQL问题

首先得理清楚你的需求:从你给出的原始数据和期望结果来看,你其实是想按苹果(apple)、香蕉(banana)这个类别来分组,计算对应value的平均值,然后给每个类别分配一个tag标识对吧?你提到的“按tag分组”可能是表述上的小混淆,不过没关系,核心用SQL的GROUP BY子句就能轻松解决。

假设你的表结构

先明确下,你的原始数据应该是一个三列的表(比如表名叫fruit_values),列分别是tag、fruit_type、value,数据如下:

tagfruit_typevalue
1apple3
2banana5
3apple4
4banana2

实现查询的SQL语句

要得到你想要的结果,只需要用GROUP BY对fruit_type分组,再用AVG()函数计算平均值,最后用CASE语句给每个分组指定对应的tag:

SELECT
  CASE fruit_type
    WHEN 'apple' THEN 1
    WHEN 'banana' THEN 2
  END AS tag,
  fruit_type,
  AVG(value) AS value
FROM fruit_values
GROUP BY fruit_type;

语句解释

  • GROUP BY fruit_type:告诉SQL把所有fruit_type相同的行归为一组,也就是把所有apple的行放一组,banana的行放一组
  • AVG(value):对每组里的value列计算平均值,apple组就是(3+4)/2=3.5,banana组就是(5+2)/2=3.5
  • CASE语句:用来给每个水果类别映射你想要的tag值,让结果和你期望的格式一致

如果你的表没有给第二列命名(比如是匿名列),可以改成按列位置或者临时别名来分组,比如:

SELECT
  CASE col2
    WHEN 'apple' THEN 1
    WHEN 'banana' THEN 2
  END AS tag,
  col2 AS fruit_type,
  AVG(col3) AS value
FROM your_table
GROUP BY col2;

这样执行后就能得到你想要的结果啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:54:06