我需要写一个查询来获取每个国家/地区销售的前10件商品
数据库类型为MS Access 2013
表名称:SoldItems 领域 国家 项目
查询
此查询将使我得到每个国家/地区中所有已售商品的排序,并按每个国家/地区中已售商品的数量降序排列,我只需要每个国家/地区中售出的前10名商品
SELECT count(*)作为CountOfItems已售出,国家/地区,商品 来自SoldItems 按国家/地区分组
按2,1解码排序
答案 0 :(得分:0)
您将需要使用一个子查询,该查询返回按国家/地区分组的前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条以上的记录。
此致