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

MS Access单SQL查询中实现Count与AVG组合计算的技术求助

解决MS Access中每月出警统计与平均响应成员数的查询问题

我明白你现在的需求——既要统计每月的响应成员总数,又要算出每起呼叫的平均响应人数,而且要在单个查询里完成。针对MS Access的特性,我们可以通过嵌套子查询关联的方式来实现,下面给你详细的解决方案:

核心思路

要得到预期结果,我们需要先分别计算两个关键数据:

  • 每月的独立呼叫数(即该月有多少个不同的Alarm #)
  • 每月的总响应成员数(你已经通过Count([Member ID])实现)
    然后用总响应成员数除以独立呼叫数,就能得到平均每起呼叫的响应成员数。另外注意用带年份的月份分组,避免不同年份的同月数据混淆。

完整SQL查询语句

SELECT
    CallStats.CallMonth AS [Month],
    CallStats.MonthlyCalls AS [Calls],
    Round(MemberStats.TotalMembers / CallStats.MonthlyCalls, 1) AS [Avg members per call]
FROM
    (
        -- 子查询1:统计每月的独立呼叫数
        SELECT
            Format([Dispatch Date/Time], "yyyy-mm") AS CallMonth,
            Count(DISTINCT Calls.[Alarm #]) AS MonthlyCalls
        FROM Calls
        GROUP BY Format([Dispatch Date/Time], "yyyy-mm")
    ) AS CallStats
INNER JOIN
    (
        -- 子查询2:统计每月的总响应成员数
        SELECT
            Format(Calls.[Dispatch Date/Time], "yyyy-mm") AS MemberMonth,
            Count([Responding Members].[Member ID]) AS TotalMembers
        FROM [Responding Members]
        INNER JOIN Calls ON [Responding Members].[Alarm #] = Calls.[Alarm #]
        GROUP BY Format(Calls.[Dispatch Date/Time], "yyyy-mm")
    ) AS MemberStats
ON CallStats.CallMonth = MemberStats.MemberMonth;

语句细节解释

  1. Format函数优化年月格式:用Format([Dispatch Date/Time], "yyyy-mm")直接生成2020-01这种带年份的月份,比单独提取月份数字更严谨,避免跨年份的同月数据混在一起。
  2. CallStats子查询:从Calls表分组统计每个月的独立呼叫数,Count(DISTINCT Calls.[Alarm #])确保每个呼叫只被统计一次,不会重复计数。
  3. MemberStats子查询:基于你原来的查询逻辑,统计每月的总响应成员数,只是把分组字段改成了带年份的格式。
  4. 关联与平均值计算:通过相同的年月字段把两个统计结果关联,用总成员数除以呼叫数得到平均值,Round()函数可以控制小数位数(这里保留1位,和你的预期结果一致)。

示例数据验证

用你提供的示例数据运行这个查询,会得到完全符合预期的结果:

MonthCallsAvg members per call
2020-0122.5
2020-0212

补充场景处理

如果你的Calls表中存在没有响应成员的呼叫(即某个Alarm #在Responding Members中无记录),且需要统计这类呼叫,可以把INNER JOIN改成LEFT JOIN,同时用NZ()函数处理空值,比如把平均值计算改成:Round(NZ(MemberStats.TotalMembers, 0) / CallStats.MonthlyCalls, 1),这样无响应的呼叫会显示平均值为0。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 20:13:11