如何在 Microsoft Access SQL 中查看每年数字最高的月份?

问题描述 投票:0回答:1

如何使用 Microsoft Access 中的 SQL 查找每年犯罪率最高的月份以及该年该月的犯罪数量?

我尝试了这个,希望它能给我我想要的结果。

SELECT COUNT(*) AS CRIME_COUNT, CRIME_MONTH, CRIME_YEAR
FROM CRIMEDATA
GROUP BY CRIME_YEAR, [DISTINCT CRIME_MONTH], CRIME_MONTH
ORDER BY COUNT(*) DESC

它提示我输入

[distinct crime_month]
的参数值,所以我只输入了1,然后我得到了一个表格,其中的行按犯罪计数降序排列以及相应的月份和年份,但它显示了每年的每个月。不使用
[distinct crime_month]
我得到相同的结果。我怎样才能得到我想要的结果?

sql ms-access distinct
1个回答
0
投票

构建聚合查询并使用该查询作为 TOP N 的源。

考虑:

查询1

SELECT COUNT(*) AS CRIME_COUNT, CRIME_MONTH, CRIME_YEAR
FROM CRIMEDATA
GROUP BY CRIME_YEAR, CRIME_MONTH;

查询2

SELECT Query1.* FROM Query1 WHERE CRIME_MONTH IN(
    SELECT TOP 1 CRIME_MONTH FROM Query1 AS Dupe 
    WHERE Dupe.CRIME_YEAR = Query1.CRIME_YEAR 
    ORDER BY Dupe.CRIME_COUNT DESC)
ORDER BY CRIME_YEAR, CRIME_MONTH;

请注意,这不会消除绑定数据。将检索一年中具有相同 TOP 计数的月份。

© www.soinside.com 2019 - 2024. All rights reserved.