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

SQL新手求助:如何计算查询结果平均值及Count_Totals平均行

两种解决思路(计算Count_Totals的平均值)

1. 在原查询结果末尾追加平均值行

如果你想把平均值和原查询结果放在同一张结果表里,可以用UNION ALL将原查询和平均值计算语句合并,注意两部分的列数、列类型要匹配。

举个实际例子,假设你的原查询是统计各部门的员工总数:

SELECT 
    department AS 部门, 
    COUNT(*) AS Count_Totals
FROM employees
GROUP BY department;

要追加平均值行,把原查询作为子查询,再和聚合平均值的语句合并:

-- 原查询结果
SELECT 
    department AS 部门, 
    COUNT(*) AS Count_Totals
FROM employees
GROUP BY department

UNION ALL

-- 平均值行
SELECT 
    '平均值' AS 部门, 
    AVG(sub.Count_Totals) AS Count_Totals
FROM (
    -- 复制原查询的核心统计逻辑
    SELECT COUNT(*) AS Count_Totals
    FROM employees
    GROUP BY department
) AS sub;

2. 单独计算Count_Totals的平均值

如果不需要和原结果合并,直接单独计算平均值更简单,将原查询作为子查询,外层用AVG()聚合即可:

SELECT AVG(sub.Count_Totals) AS Avg_Count_Totals
FROM (
    -- 原查询内容
    SELECT COUNT(*) AS Count_Totals
    FROM employees
    GROUP BY department
) AS sub;

关键注意点

  • 子查询必须指定别名(比如示例里的sub),否则SQL会报错。
  • 不管你的Count_Totals是通过COUNT()还是其他逻辑计算的,只要把原查询中对应字段放到子查询里,就能套用上面的写法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 15:57:03