如何编写SQL查询从persons与trades两张表中获取数值总和
计算交易数值总和的SQL查询方案
首先得明确你需要的是哪类总和——是所有交易的总价值?还是按国籍统计卖家/买家的交易总和?下面给你对应几种常用的查询写法:
1. 所有交易的总价值
如果只是想统计trades表中所有交易的value字段总和,直接用SUM()聚合函数即可,不需要关联persons表:
SELECT SUM(value) AS total_transaction_value FROM trades;
2. 按国籍统计卖家的总销售额
如果需要关联persons表,统计每个国籍的卖家总共卖出了多少价值的商品,可以用JOIN关联两张表后分组统计:
SELECT p.nationality, SUM(t.value) AS total_sold FROM persons p INNER JOIN trades t ON p.name = t.seller GROUP BY p.nationality;
3. 按国籍统计买家的总采购额
同理,统计每个国籍的买家总共买入的价值总和:
SELECT p.nationality, SUM(t.value) AS total_bought FROM persons p INNER JOIN trades t ON p.name = t.buyer GROUP BY p.nationality;
小提示
注意到你给出的trades表第5条记录里的买家是Lisa,但persons表对应的是Liza,这应该是拼写失误,会导致这条交易记录在关联查询时无法匹配到对应的国籍,记得修正这个拼写问题哦。
内容的提问来源于stack exchange,提问作者Manuelarte
相关产品推荐
相关产品推荐

