leetcode 1571 仓库经理(postgresql)

需求

表: Warehouse

±-------------±--------+
| Column Name | Type |
±-------------±--------+
| name | varchar |
| product_id | int |
| units | int |
±-------------±--------+
(name, product_id) 是该表主键.
该表的行包含了每个仓库的所有商品信息.

表: Products

±--------------±--------+
| Column Name | Type |
±--------------±--------+
| product_id | int |
| product_name | varchar |
| Width | int |
| Length | int |
| Height | int |
±--------------±--------+
product_id 是该表主键.
该表的行包含了每件商品以英尺为单位的尺寸(宽度, 长度和高度)信息.

写一个 SQL 查询来报告, 每个仓库的存货量是多少立方英尺.

返回结果没有顺序要求.

查询结果如下例所示.

示例 1:

输入:
Warehouse 表:
±-----------±-------------±------------+
| name | product_id | units |
±-----------±-------------±------------+
| LCHouse1 | 1 | 1 |
| LCHouse1 | 2 | 10 |
| LCHouse1 | 3 | 5 |
| LCHouse2 | 1 | 2 |
| LCHouse2 | 2 | 2 |
| LCHouse3 | 4 | 1 |
±-----------±-------------±------------+
Products 表:
±-----------±-------------±-----------±---------±----------+
| product_id | product_name | Width | Length | Height |
±-----------±-------------±-----------±---------±----------+
| 1 | LC-TV | 5 | 50 | 40 |
| 2 | LC-KeyChain | 5 | 5 | 5 |
| 3 | LC-Phone | 2 | 10 | 10 |
| 4 | LC-T-Shirt | 4 | 10 | 20 |
±-----------±-------------±-----------±---------±----------+
输出:
±---------------±-----------+
| WAREHOUSE_NAME | VOLUME |
±---------------±-----------+
| LCHouse1 | 12250 |
| LCHouse2 | 20250 |
| LCHouse3 | 800 |
±---------------±-----------+
解释:
Id为1的商品(LC-TV)的存货量为 5x50x40 = 10000
Id为2的商品(LC-KeyChain)的存货量为 5x5x5 = 125
Id为3的商品(LC-Phone)的存货量为 2x10x10 = 200
Id为4的商品(LC-T-Shirt)的存货量为 4x10x20 = 800
仓库LCHouse1: 1个单位的LC-TV + 10个单位的LC-KeyChain + 5个单位的LC-Phone.
总存货量为: 110000 + 10125 + 5200 = 12250 立方英尺
仓库LCHouse2: 2个单位的LC-TV + 2个单位的LC-KeyChain.
总存货量为: 2
10000 + 2125 = 20250 立方英尺
仓库LCHouse3: 1个单位的LC-T-Shirt.
总存货量为: 1
800 = 800 立方英尺.

输入

在这里插入图片描述

输出

with t1 as (
select name,w.product_id,p.product_name,units*Width*Length*Height as volume
from warehouse w
left join Products p
on w.product_id=p.product_id
)
select name as warehouse_name,sum(volume) as volume
from t1
group by name

在这里插入图片描述

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值