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

如何在Microsoft Access SQL中查询每年犯罪最多的月份及数量

解决Microsoft Access SQL查找每年犯罪最多月份的问题

原SQL语句的问题:

  • GROUP BY子句中使用[DISTINCT CRIME_MONTH]是错误语法,Access会将其识别为需要输入的参数,这也是弹出输入框的原因。
  • 仅仅按年月分组排序,没有筛选出每年中犯罪数量最多的月份记录。

正确的SQL语句如下:

SELECT t1.CRIME_YEAR, t1.CRIME_MONTH, t1.CRIME_COUNT
FROM (
    SELECT CRIME_YEAR, CRIME_MONTH, COUNT(*) AS CRIME_COUNT
    FROM CRIMEDATA
    GROUP BY CRIME_YEAR, CRIME_MONTH
) AS t1
INNER JOIN (
    SELECT CRIME_YEAR, MAX(CRIME_COUNT) AS MAX_COUNT
    FROM (
        SELECT CRIME_YEAR, CRIME_MONTH, COUNT(*) AS CRIME_COUNT
        FROM CRIMEDATA
        GROUP BY CRIME_YEAR, CRIME_MONTH
    ) AS t2
    GROUP BY CRIME_YEAR
) AS t3 ON t1.CRIME_YEAR = t3.CRIME_YEAR AND t1.CRIME_COUNT = t3.MAX_COUNT
ORDER BY t1.CRIME_YEAR, t1.CRIME_MONTH;

语句说明:

  1. 内层子查询t2先统计每个年月的犯罪数量,得到所有年月的犯罪数明细。
  2. 子查询t3基于t2的结果,按年份分组,计算出每一年的最大犯罪数量。
  3. 外层查询将t1(和t2逻辑相同的年月统计结果)与t3关联,筛选出每个年份中犯罪数等于该年最大值的记录,这样就能得到每年犯罪最多的月份及对应数量。

如果存在某一年有多个月份犯罪数并列最多的情况,该语句会返回所有并列的记录。

内容的提问来源于stack exchange,提问作者KATIE.E

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 17:53:11