暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【牛客刷题-SQL大厂面试真题】NO5.某宝店铺分析(电商模式)

原创 IT邦德 2022-08-04
341

在这里插入图片描述
体系化学习SQL,请到牛客经典高频面试题库,参加实训,提高你的SQL技能吧~

https://www.nowcoder.com/link/pc_csdncpt_itbd_sql

🐴 SQL180 某宝店铺的SPU数量

🚀 建表语句

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);

📖 需求

请你统计每款的SPU(货号)数量,并按SPU数量降序排序

🍌🍌 答案

select style_id,count(item_id) as SPU_num from product_tb group by style_id order by SPU_num desc

在这里插入图片描述

🐴 SQL181 某宝店铺的实际销售额与客单价

🚀 建表语句

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);

📖 需求

请你统计实际总销售额与客单价(人均付费,总收入/总用户数,结果保留两位小数)

🍌🍌 答案

select sum(sales_price) as sales_total, round(sum(sales_price)/count(distinct user_id),2) as per_trans from sales_tb

在这里插入图片描述

🐴 SQL182 某宝店铺折扣率

🚀 建表语句

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);

📖 需求

请你统计折扣率(GMV/吊牌金额,GMV指的是成交金额),折扣率保留两位小数:

'🍌🍌 答案

select round(sum(sales_price)*100/sum(sales_num*tag_price),2) discount_rate from sales_tb left join product_tb using(item_id)

在这里插入图片描述

🐴 SQL183 某宝店铺动销率与售罄率

🚀 建表语句

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);

📖 需求

请你统计每款的动销率(pin_rate,有销售的SKU数量/在售SKU数量)与售罄率(sell-through_rate,GMV/备货值,备货值=吊牌价*库存数),按style_id升序排序

🍌🍌 答案

select style_id ,round(sum(t2.sales_num)/(sum(inventory)-sum(t2.sales_num))*100,2) pin_rate ,round(sum(sales_price)/sum(tag_price*inventory)*100,2) sell_rate from product_tb t1 join (select item_id ,sum(sales_num) sales_num ,sum(sales_price) sales_price from sales_tb group by item_id) t2 using(item_id) group by style_id order by style_id

在这里插入图片描述

🐴 SQL184 某宝店铺连续2天及以上购物的用户及其对应的天数

🚀 建表语句

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);

📖 需求

请你统计连续2天及以上在该店铺购物的用户及其对应的次数(若有多个用户,按user_id升序排序)

🍌🍌 答案

select user_id, count(diff) date_cnt from (select user_id, sales_date - rk diff from (select user_id, sales_date, rank() over(partition by sales_date) rk from (select distinct user_id,sales_date from sales_tb)aa )a) b group by user_id having date_cnt>=2

在这里插入图片描述
在这里插入图片描述

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论