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

SQL统计平均评分对应critics、promoters数量时报1111组函数无效错误

报错原因解析

你遇到的General error: 1111 Invalid use of group function(通用错误:1111 分组函数使用无效)报错,核心原因是SQL不允许在同一个查询层级嵌套使用聚合函数:你写的SUM( IF( round(avg(items.value) ) <= 6, 1, 0) )中,AVG()和SUM()都属于聚合函数,在同一个GROUP BY category的聚合层级中,数据库无法在一次计算中同时完成「先算平均值、再按平均值统计计数」的两步操作。

解决方案

你需要拆分聚合逻辑,先通过子查询完成第一次聚合算出目标平均分值,再在外层做第二次聚合完成计数统计。
如果你的需求是常规NPS统计逻辑:先计算单条review下1、2、4号问题的平均得分,单条review的平均分四舍五入后<=6记为critics、>=9记为promoters,最后按category统计每个分类下的两类人群数量,正确写法如下:

SELECT
  category,
  SUM(IF(round(review_avg) <= 6, 1, 0)) AS critics,
  SUM(IF(round(review_avg) >= 9, 1, 0)) AS promoters
FROM (
  -- 内层先聚合计算单条review的指定问题平均得分
  SELECT
    r.id AS review_id,
    r.category,
    AVG(i.value) AS review_avg
  FROM reviews r
  INNER JOIN items i
    ON r.id = i.review_id
    AND i.question_id IN (1,2,4)
  GROUP BY r.id, r.category
) AS review_avg_result
GROUP BY category;

如果你需要按其他维度计算平均再统计,只需要调整内层GROUP BY后的分组维度即可。


内容的提问来源于stack exchange,提问作者Line in Linus

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 00:15:02