sql - 集团公司及其交易
问题描述
我试图在 SQL 中找出一个国家的公司之间的交易数量:
这是我的桌子公司和优惠
Company
================
companyname country
A US
B US
C UK
D Russia
Deals
================
id sold bought total
1 A B 50
2 B C 100
3 C A 150
4 D B 200
Result:
============
country sold bought
US 150 200
UK 150 100
Russia 200 0
我尝试了以下仅获取已售商品的查询:
select country, sum(total) as sold
from company c left join deals d on c.companyname=d.sold
group by country.
如何编写查询以一次获得买卖结果?
解决方案
一种方法使用子查询
select country, sum(sold) as sold, sum(bought) as bought
from (select c.*,
(select sum(d.total)
from deals d
where d.sold = c.companyname
) as sold,
(select sum(d.total
from deals d
where d.bought = c.companyname
) as bought
from company c
) c
group by country;
推荐阅读
- html - Html 文件显示为空白
- python - coroutine.send() 不接受关键字参数
- php - 在 php 中生成适合锻炼时如何解决标题问题?
- java - 是否有一种简单的方法可以附加一个新列,该列对于 csv 中的所有行都具有相同的值?
- r - 将新提示随机添加到系统发育树中的不同特定位置
- postgresql - 使用 postgresql 动态选择行并合并它们
- python - Azure 管理容器实例 SDK
- amazon-web-services - AWS CDK 中的 InterfaceVpcEndpoint 与 VpcEndpoint
- php - 在 php 后端和 angularjs 前端用变量替换主机名
- asp.net-core-2.0 - 如何使用.net core 配置多个 okta 服务器的身份验证?