Access查询如何选取销量Top10商品及对应总销量?
Access查询:获取销量最高的前10个商品及累计总销量
直接一步到位的SQL写法
你需要先按商品分组计算累计总销量,再按销量降序排列后取前10条,用以下SQL语句即可:
SELECT TOP 10 items, Sum([qty sold]) AS 累计总销量 FROM transactions GROUP BY items ORDER BY Sum([qty sold]) DESC;
关键逻辑说明
GROUP BY items:按商品名称分组,确保每个商品只输出一条汇总记录Sum([qty sold]):计算每个商品的所有交易销量总和,即累计总销量ORDER BY Sum([qty sold]) DESC:按累计销量从高到低排序,保证销量最高的商品排在最前TOP 10:仅返回排序后的前10条结果
可视化操作步骤(查询设计视图)
- 打开查询设计视图,添加
transactions表 - 双击添加
items字段和qty sold字段到设计网格 - 点击工具栏的「总计」按钮(Σ图标),此时
items字段的「总计」行选「Group By」,qty sold字段的「总计」行选「Sum」 - 可在
qty sold的「字段」栏修改别名,比如改为累计总销量 - 在
Sum(qty sold)的「排序」行选择「降序」 - 右键点击查询选项卡→「属性」,在「上限值」输入框中填入10
- 运行查询即可得到结果
并列销量的特殊处理
如果有多个商品销量并列第10,Access的TOP 10会返回所有符合条件的记录(比如第10名有2个商品,会返回11条)。若需严格只返回10条,可添加额外排序条件打破并列:
SELECT TOP 10 items, Sum([qty sold]) AS 累计总销量 FROM transactions GROUP BY items ORDER BY Sum([qty sold]) DESC, items ASC;
内容的提问来源于stack exchange,提问作者Sridhar
相关产品推荐
相关产品推荐

