首页 > 试题广场 >

某宝店铺动销率与售罄率

[编程题]某宝店铺动销率与售罄率
  • 热度指数:37676 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
11月结束后,小牛同学需要对其在某宝的网店就11月份用户交易情况和产品情况进行分析以更好的经营小店。
已知产品情况表product_tb如下(其中,item_id指某款号的具体货号,style_id指款号,tag_price表示标签价格,inventory指库存量):

11月份销售数据表sales_tb如下(其中,sales_date表示销售日期,user_id指用户编号,item_id指货号,sales_num表示销售数量,sales_price表示结算金额):
请你统计每款的动销率(pin_rate,有销售的SKU数量/在售SKU数量)(请忽略动销率实际计算公式,以该题目提供的公式为准)与售罄率(sell-through_rate,GMV/备货值,备货值=吊牌价*库存数),按style_id升序排序,以上例子的输出结果如下:

示例1

输入

drop table if exists product_tb;
CREATE TABLE product_tb(
item_id char(10) NOT NULL,
style_id char(10) NOT NULL,
tag_price int(10) NOT NULL,
inventory int(10) NOT NULL
);
INSERT INTO product_tb VALUES('A001', 'A', 100,  20);
INSERT INTO product_tb VALUES('A002', 'A', 120, 30);
INSERT INTO product_tb VALUES('A003', 'A', 200,  15);
INSERT INTO product_tb VALUES('B001', 'B', 130, 18);
INSERT INTO product_tb VALUES('B002', 'B', 150,  22);
INSERT INTO product_tb VALUES('B003', 'B', 125, 10);
INSERT INTO product_tb VALUES('B004', 'B', 155,  12);
INSERT INTO product_tb VALUES('C001', 'C', 260, 25);
INSERT INTO product_tb VALUES('C002', 'C', 280,  18);

drop table if exists sales_tb;
CREATE TABLE sales_tb(
sales_date date NOT NULL,
user_id int(10) NOT NULL,
item_id char(10) NOT NULL,
sales_num int(10) NOT NULL,
sales_price int(10) NOT NULL
);

INSERT INTO sales_tb VALUES('2021-11-1', 1, 'A001',  1, 90);
INSERT INTO sales_tb VALUES('2021-11-1', 2, 'A002',  2, 220);
INSERT INTO sales_tb VALUES('2021-11-1', 2, 'B001',  1, 120);
INSERT INTO sales_tb VALUES('2021-11-2', 3, 'C001',  2, 500);
INSERT INTO sales_tb VALUES('2021-11-2', 4, 'B001',  1, 120);
INSERT INTO sales_tb VALUES('2021-11-3', 5, 'C001',  1, 240);
INSERT INTO sales_tb VALUES('2021-11-3', 6, 'C002',  1, 270);
INSERT INTO sales_tb VALUES('2021-11-4', 7, 'A003',  1, 180);
INSERT INTO sales_tb VALUES('2021-11-4', 8, 'B002',  1, 140);
INSERT INTO sales_tb VALUES('2021-11-4', 9, 'B001',  1, 125);
INSERT INTO sales_tb VALUES('2021-11-5', 10, 'B003',  1, 120);
INSERT INTO sales_tb VALUES('2021-11-5', 10, 'B004',  1, 150);
INSERT INTO sales_tb VALUES('2021-11-5', 10, 'A003',  1, 180);
INSERT INTO sales_tb VALUES('2021-11-6', 11, 'B003',  1, 120);
INSERT INTO sales_tb VALUES('2021-11-6', 10, 'B004',  1, 150);

输出

A|8.33|7.79
B|14.81|11.94
C|10.26|8.75
头像 平安是福花开富贵
发表于 2022-03-16 21:05:19
题目: 请你统计每款的动销率(pin_rate,有销售的SKU数量/在售SKU数量)与售罄率(sell-through_rate,GMV/备货值,备货值=吊牌价*库存数),按style_id升序排序。 明确 一、动销率 Stock Keeping Unit (库存量单位)。在很多业务场景下,是计算库 展开全文
头像 盐咸咸
发表于 2022-04-11 17:29:08
这一题的难点和坑主要在于对指标的理解。以及要分别计算几个指标,算完之后再关联表。 一、题目理解 题目:请你统计每款的动销率(pin_rate,有销售的SKU数量/在售SKU数量)与售罄率(sell-through_rate,GMV/备货值,备货值=吊牌价*库存数),按style_id升序 展开全文
头像 牛客420100019号
发表于 2021-12-24 18:24:29
#他这里的动销率很迷惑,看其他人的解释是: #每个style_id的已经销售的数量/(每个style_id的库存量-已经销售的数量)剩余库存, #这个公式不能理解,我理解的是 有动销的sku种类/全部sku种类 select  style_id ,round(sum 展开全文
头像 视星等无穷
发表于 2022-04-26 14:59:51
先从表格中计算出想得到的指标, 注意统计存货量inv和inv_value的时候,不要把两个表连接之后再分组统计,会导致重复计算 with t1 as (select style_id, sum(inventory) inv,sum(tag_price*inventory) inv_value fro 展开全文
头像 小摆锤
发表于 2022-02-09 16:35:27
JOIN product_tb和sales_tb之后,由于sales_tb中记录了同一标签商品多次被购买的记录,product_tb中某些被多次购买商品的inventory和tag_price会出现多次,所以相加时用DISTINCT只加一次即可。 SELECT style_id, ROU 展开全文
头像 笨鹤稳飞
发表于 2022-08-20 21:13:03
变量理解 销售的SKU——销售量sales_num 在售的SKU——库存量-销售量inventory-sales_num GMV——销售额sales_price 备货值——库存货价值tag_price*inventory易错点 若先连接两表,再直接group by style_id,会出现多条同 展开全文
头像 酸菜鱼土豆大侠
发表于 2022-11-02 22:01:00
【场景】:分组求和、动销率 = 销售的货物数量/(库存数量减去已经销售的货物数量)、售罄率 = 结算金额/(吊牌价格*库存数) 【分类】:分组查询 分析思路 难点: 1.理解动销率和售罄率 (1)统计每个货号的销售数量和总的销售金额 (2)计算动销率和售罄率 求解代码 方法一 with子句 wi 展开全文
头像 🍎飞侠
发表于 2023-08-15 16:34:05
-- 动销率 = 有销售的SKU数量/在售SKU数量 -- 有销售的SKU数量:售出的SKU数量总和(商品期间销售数量) -- 在售的SKU数量 :剩余(总库存 - 售出)库存SKU的数量总和(商品期末库存数量) -- 售罄率 = GMV/备货值,GMV :所有订单的金额总和,备货值=吊牌价*库存数 展开全文
头像 牛客987852806号
发表于 2023-06-01 12:03:13
with tiaojian as ( select item_id, date_format(sales_date,"%Y%m"), sum(sales_num) as pt, sum(sales_price) as py from sales_tb where date_format(sales_ 展开全文
头像 求职小张957
发表于 2024-10-15 15:43:56
这个问题最难的地方就是变量的业务能力其次值得注意是,直接使用JOIN连接两表计算特征时,由于JOIN会导致产品表的行数增加,从而通过聚合函数容易导致高估库存量,因此应先将销售表进行汇总各个产品的情况,然后再进行产品的连接并计算 SELECT style_id , ROUND(100* 展开全文