题目来源
牛客网SQL大厂真题——某宝店铺分析(电扇模式)
一、SQL1(简单)
1.题目内容
描述
11月结束后,小牛同学需要对其在某宝的网店就11月份用户交易情况和产品情况进行分析以更好的经营小店。
已知产品情况表product_tb如下(其中,item_id指某款号的具体货号,style_id指款号,tag_price表示标签价格,inventory指库存量):
请你统计每款的SPU(货号)数量,并按SPU数量降序排序,以上例子的输出结果如下:
2.思路分析
很简单的题,直接分组count然后排序即可。
3.语句实现
select
style_id,
count(*) SPU_num
from product_tb
group by style_id
order by SPU_num desc
二、SQL2(简单)
1.题目内容
描述
11月结束后,小牛同学需要对其在某宝的网店就11月份用户交易情况和产品情况进行分析以更好的经营小店。
已知11月份销售数据表sales_tb如下(其中,sales_date表示销售日期,user_id指用户编号,item_id指货号,sales_num表示销售数量,sales_price表示结算金额):
请你统计实际总销售额与客单价(人均付费,总收入/总用户数,结果保留两位小数),以上例子的输出结果如下:
2.思路分析
题目很简单,直接sum所有金额,count(distinct())所有用户id即可。
3.语句实现
select
sum(sales_price) sales_total,
round(sum(sales_price)/count(distinct(user_id)),2) per_trans
from sales_tb
三、SQL3(中等)
1.题目内容
描述
11月结束后,小牛同学需要对其在某宝的网店就11月份用户交易情况和产品情况进行分析以更好的经营小店。
已知产品情况表product_tb如下(其中,item_id指某款号的具体货号,style_id指款号,tag_price表示标签价格,inventory指库存量):
11月份销售数据表sales_tb如下(其中,sales_date表示销售日期,user_id指用户编号,item_id指货号,sales_num表示销售数量,sales_price表示结算金额):
请你统计折扣率(GMV/吊牌金额,GMV指的是成交金额),以上例子的输出结果如下(折扣率保留两位小数):
2.思路分析
题目很简单。
求折扣率,直接求出2021年11月份的所有数据,然后按货号id直接分别对成交金额和标签价格sum求和即可,最后相除保留两位小数。
3.语句实现
select
round(sum(sales_price)/sum(sales_num*tag_price)*100,2)
from
(
select
item_id,
sum(sales_num) sales_num,
sum(sales_price) sales_price
from sales_tb
where date_format(sales_date,'%Y-%m')='2021-11'
group by item_id
)t1
inner join
(
select
item_id,
tag_price
from product_tb
)t2
on t1.item_id=t2.item_id