我需要在sql中使用大查询比较两个表,表(a)和表(b)。
表a是不同销售商出售的所有水果的完整清单。三家供应商都有三种类型。
表b是按供应商列出的销售清单,以及他们每天销售的水果
(Table A) (Table B)
ID | Fruit ID | Item | Sold | Date
---+-------- ----+--------+------+-------
1 | Apple 1 | Apple | 1 | M
1 | Orange 1 | Apple | 1 | T
1 | Banana 2 | Orange | 1 | M
2 | Apple 2 | Banana | 1 | W
2 | Orange 2 | Orange | 1 | F
2 | Banana 3 | Banana | 1 | S
3 | Apple
3 | Orange
3 | Banana
我要做的是连接这些表,创建表c,在表c中我希望它显示所有的供应商和可用的水果,以及每种类型的总销量。我还想包括任何空值以及0。
棘手的部分是表b中的item列是一个串联字段,因此我无法立即从a where fruit=item from b进行连接,因此我假设它必须是两个子查询,并导致创建表c。
(Table C)
ID | Fruit | Sold
---+--------+-------
1 | Apple | 2
1 | Orange | 0
1 | Banana | 0
2 | Apple | 0
2 | Orange | 2
2 | Banana | 1
3 | Apple | 0
3 | Orange | 0
3 | Banana | 1
不确定这是否是我如何连接表的问题,但我只是无法得到结果。不过,我绝对会把这归咎于我的新手级sql技能——所以感谢您对如何解决这个问题的任何指导。
4条答案
按热度按时间neskvpey1#
如果你有sql,你会做一个内部连接。
3zwjbxry2#
你可以用
left join
具有聚合功能sum
如下所示这是演示。
输出:
cbwuti443#
下面是bigquery标准sql
50few1ms4#
您可以按如下方式使用sql查询: