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

如何使用MySQL统计每年的总犯罪案件数?

统计每年总犯罪案件数的SQL调整方案

当前SQL及查询结果

现有SQL仅能按年份+犯罪类别分别统计案件次数:

SELECT year_time, offense_category, COUNT(*) AS crime_incidents
FROM rms_crime_incidents
GROUP BY year_time, offense_category
ORDER BY year_time DESC, offense_category ASC, crime_incidents ASC;

对应查询结果:

year_timeoffense_categorycrime_incidents
2022AGGRAVATED ASSAULT14
2022DAMAGE TO PROPERTY7
2022OBSTRUCTING JUDICIARY2
2021AGGRAVATED ASSAULT443
2021BURGLARY204
2021DAMAGE TO PROPERTY460
2021DANGEROUS DRUGS59
2021DISORDERLY CONDUCT14

调整后的SQL(统计年度总案件数)

要直接得到每年的总犯罪案件数,只需修改分组逻辑,仅按year_time分组:

SELECT year_time, COUNT(*) AS total_crime_incidents
FROM rms_crime_incidents
GROUP BY year_time
ORDER BY year_time DESC, total_crime_incidents DESC;

预期结果示例

year_timetotal_crime_incidents
202223
20211180

(注:数值为当前结果累加值,2022年总案件数=14+7+2,2021年=443+204+460+59+14)

扩展:同时查看明细与年度总计

如果需要在同一张结果表里看到每年各分类案件数+年度总数,可以使用WITH ROLLUP扩展分组功能:

SELECT 
    year_time, 
    COALESCE(offense_category, '年度总计') AS offense_category,
    COUNT(*) AS crime_incidents
FROM rms_crime_incidents
GROUP BY year_time, offense_category WITH ROLLUP
ORDER BY year_time DESC, offense_category ASC;

该语句会在每年的分类数据后自动追加一行年度总计行,兼顾明细查看与汇总统计需求。

样本数据:
样本数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 15:20:26