牛客 SQL | 105 列出供应商及其可供产品的数量

目录

二、问题

三、示例结果

四、解答

(一)错误答案

 错误一

​编辑

错误二

(二)正确答案

五、总结


一、数据

有Vendors表含有vend_id供应商id

vend_id
a0002
a0013
a0003
a0010

有Products表含有供应商id和供应产品id

vend_idprod_id
a0001egg
a0002prod_id_iphone
a00113prod_id_tea
a0003prod_id_vivo phone
a0010prod_id_huawei phone

二、问题

  • 列出供应商(Vendors 表中的 vend_id)及其可供产品的数量,包括没有产品的供应商。
  • 你需要使用 OUTER JOIN 和 COUNT()聚合函数来计算 Products 表中每种产品的数量。
  • 最后根据vend_id 升序排序。

注意:vend_id 列会显示在多个表中,因此在每次引用它时都需要完全限定它。

三、示例结果

返回供应商id和对应供应商供应的产品的个数

vend_idprod_id
a00021
a00130
a00031
a00101

示例解析:

供应商a00013供应的商品不在Products表中所以为0,其他供应商供应的产品为1个。

四、解答

(一)错误答案

 错误一

select a.vend_id, count(a.prod_id)
from Products a
right join Vendors b
on a.vend_id=b.vend_id
group by a.vend_id
order by a.vend_id

(1)错误原因:使用表字段错误

(2)简图示意:

错误二

select a.vend_id, count(a.prod_id)
from Products a
left join Vendors b
on a.vend_id=b.vend_id
group by a.vend_id
order by a.vend_id

(二)正确答案

select b.vend_id, count(a.prod_id)
from Products a
right join Vendors b
on a.vend_id=b.vend_id
group by b.vend_id
order by b.vend_id

五、总结

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值