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

如何在SQL Server中计算单元测试结果的月度平均值

计算每月单元测试平均值的正确SQL方法

原查询的问题修正

  • 第一个查询中month(Passed)错误:表中无Passed字段,应使用End date或Start date;且group by mnth是拼写错误,需改为对应月份字段或别名。
  • 第二个查询中month('EndDate')错误:引号会将字段名转为字符串,应直接引用字段;且逻辑不符合单月平均值的计算需求。

分场景给出正确SQL

场景1:计算指定月份(如2022年2月)内,每次测试运行的总测试数平均值

如果需要统计2022年2月里,每次单元测试运行的Total tests的平均值,使用以下SQL:

-- MySQL 语法(字段含空格用反引号包裹)
SELECT AVG(`Total tests`) AS avg_total_tests
FROM UnitTestRun
WHERE MONTH(`End date`) = 2 AND YEAR(`End date`) = 2022;

-- SQL Server 语法(字段含空格用方括号包裹)
SELECT AVG([Total tests]) AS avg_total_tests
FROM UnitTestRun
WHERE MONTH([End date]) = 2 AND YEAR([End date]) = 2022;

场景2:计算所有年份中2月的测试运行次数平均值

如果需要统计历年2月的单元测试运行次数的平均值(比如2021年2月跑了5次、2022年2月跑了3次,平均为4次),使用以下SQL:

-- MySQL 语法
SELECT AVG(run_count) AS avg_monthly_runs
FROM (
    SELECT COUNT(*) AS run_count
    FROM UnitTestRun
    WHERE MONTH(`End date`) = 2
    GROUP BY YEAR(`End date`)
) AS monthly_runs;

-- SQL Server 语法
SELECT AVG(run_count) AS avg_monthly_runs
FROM (
    SELECT COUNT(*) AS run_count
    FROM UnitTestRun
    WHERE MONTH([End date]) = 2
    GROUP BY YEAR([End date])
) AS monthly_runs;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 14:40:16