Products 表
- proid_id:产品 id
- prod_name:产品名称
prod_id | prod_name |
---|
a0001 | egg |
a0002 | sockets |
a0013 | coffee |
a0003 | cola |
a0023 | soda |
OrderItems 表
- proid_id:产品 id
- prod_name:订单号
prod_id | order_num |
---|
a0001 | a105 |
a0002 | a1100 |
a0002 | a200 |
a0013 | a1121 |
a0003 | a10 |
a0003 | a19 |
a0003 | a5 |
问题
返回产品名称(prod_name)和每一项产品的总订单数,并按产品名称升序排序
实例结果
prod_name | orders |
---|
coffee | 1 |
cola | 3 |
egg | 1 |
sockets | 2 |
soda | 0 |
分析
1、使用左外连接,连接 Products、OrderItems 表,
2、根据产品名称进行分组
3、得到产品名对应的订单数量
3、根据产品名称排序
select
p.prod_name,
count(o.order_num) orders
from
Products p left join OrderItems o
on p.prod_id = o.prod_id
group by
p.prod_name
order by
p.prod_name
牛客:SQL45 返回产品名称和每一项产品的总订单数