首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在SQL中使用左联接提取结果?

如何在SQL中使用左联接提取结果?
EN

Stack Overflow用户
提问于 2022-07-05 13:05:09
回答 1查看 67关注 0票数 -1

其任务是编制一份摘要,其中包括每个国家进口和出口货物的价值总额。请注意,当一家公司购买某些商品时,它对其国家的总进口额做出了贡献;当该公司出售一些货物时,它对其国家的总出口做出了贡献。

编写由三列组成的返回表SQL查询: country、export、import,其中包含每个国家的进出口货物的值之和。每个国家都应出现在本表中,结果应越来越多地按国家进行排序。

两张表格如下:

查询应返回:

假设:

在一个国家内,没有公司之间的贸易。companies.

  • Every公司在表中也出现了每一家在表中交易的公司。

我尝试过以下查询,但它没有返回正确的结果,如上面所示。

代码语言:javascript
复制
SELECT cd.country, SUM(exports.value) AS export, SUM(imports.value) AS import
  FROM companies cd 
  LEFT JOIN trades exports
    ON cd.country= exports.seller
  LEFT JOIN trades imports
    ON cd.country = imports.buyer
  GROUP BY cd.country
  ORDER BY cd.country
EN

回答 1

Stack Overflow用户

发布于 2022-07-05 13:25:44

一个简单的解决方案是分别计算出口和进口,并将它们组合起来:

代码语言:javascript
复制
select country, min(export) as export, min(import) as import
from (
    select companies.country, sum(value) as export, null as import
    from trades
    join companies on trades.seller = companies.name
    group by companies.country

    union all

    select companies.country, null, sum(value)
    from trades
    join companies on trades.buyer = companies.name
    group by companies.country
) as x
group by country
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72869962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档