MS Access 2013:每个国家/地区销售的前 10 件商品

MS Access 2013: Top 10 Items sold in each country

我需要编写一个查询来获取在每个国家/地区销售的前 10 件商品

数据库类型为 MS Access 2013

Table 名称:已售商品 字段 国家 项目

查询

此查询将使我在每个国家/地区销售的所有商品按每个国家/地区的销售商品数量降序排列,我只需要在每个国家/地区销售的前 10 件商品

SELECT count(*) 作为 CountOfItemsSold、国家、项目 来自 SoldItems 按国家、项目分组

按 2,1 desc 排序

您将需要使用子查询 returns 按国家/地区分组的前 10 个项目,并将其用作过滤器的基础。类似于:

SELECT S.Country, S.Item, COUNT(S.Item) AS CountOfItem
FROM SoldItems AS S
GROUP BY S.Country, S.Item
HAVING S.Item In (SELECT TOP 10 R.Item
    FROM SoldItems AS R
    GROUP BY R.Country, R.Item
    HAVING R.Country=S.Country
    ORDER BY COUNT(R.Item) DESC
)
ORDER BY S.Country, COUNT(S.Item) DESC;

请注意,如果有商品的售出数量相同,那么每个国家/地区将返回 10 条以上的记录。

此致,