如何使用SQL按category分组计算分类总库存价值
实现方案
完全可以仅用单条SQL实现该需求,不需要额外的业务代码处理:
你只需要在分组聚合时同时计算价格总和、库存总和,直接对两个聚合结果做乘法运算即可,还可以通过ROUND函数保留两位小数匹配你期望的输出格式。
修正后的SQL语句
SELECT category, ROUND(SUM(price) * SUM(stock), 2) AS category_calc_value FROM product GROUP BY category;
说明
- 你之前编写的SQL存在语法错误:
category和SUM(price)之间缺少逗号分隔,运行会抛出语法异常,上述语句已经修正了该问题 - 聚合函数的计算结果可以直接在
SELECT子句中参与算术运算,不需要嵌套子查询额外处理 - 如果不需要强制保留两位小数,可去掉
ROUND函数,直接写SUM(price) * SUM(stock) AS category_calc_value即可
内容的提问来源于stack exchange,提问作者Github Copilot
相关产品推荐
相关产品推荐

