您现在的位置是:主页 > news > 做问卷调查的网站有哪些/seo关键词排名优化矩阵系统
做问卷调查的网站有哪些/seo关键词排名优化矩阵系统
admin2025/5/8 15:19:47【news】
简介做问卷调查的网站有哪些,seo关键词排名优化矩阵系统,网站推广排名,萧山大江东规划国土建设局网站所有的表数据和答案在上传文件资源中,有需要的请自行下载 25 各品类销量前三的所有商品 题目需求: 从订单详情表中(order_detail)和商品(sku_info)中查询各个品类销售数量前三的商品,如果该品类小于三个商品,则输出所有的商品销…
所有的表数据和答案在上传文件资源中,有需要的请自行下载
25 各品类销量前三的所有商品
题目需求:
从订单详情表中(order_detail)和商品(sku_info)中查询各个品类销售数量前三的商品,如果该品类小于三个商品,则输出所有的商品销量
结果如下:
方法一:
先查询每个品类下的每个商品的销售量,并按销量量进行排名;然后按照category_id进行分组,查询出销量排名前三的商品sku_id
-①查询每个品类下的每个商品的销售量,并将销售量进行排名
selectcategory_id,od.sku_id,sum(sku_num) total_sum,dense_rank() over (partition by category_id order by sum(sku_num) desc) rk
from order_detail od
join sku_info si on od.sku_id = si.sku_id
group by category_id, od.sku_id
②查询销量前三的商品
with t1 as(selectcategory_id,od.sku_id,sum(sku_num) total_sum,dense_rank() over (partition by category_id order by sum(sku_num) desc) rkfrom order_detail odjoin sku_info si on od.sku_id = si.sku_idgroup by category_id, od.sku_id)
selectt1.category_id,t1.sku_id,t1.total_sum,t1.rk
from t1
where rk <= 3;
方法二:
这个方法比较接近现实生活中的做法,先求出每个商品的销售数量,再去和sku_info表进行join得到category_id字段,然后查询销售前三的商品
① 先查询每个商品的总数量
selectsku_id,sum(sku_num)
from order_detail
group by sku_id
②商品和品类进行对应,并查询销量前三的商品
with t1 as (
select
sku_id,
sum(sku_num) sum
from order_detail
group by sku_id
), t2 as (
select
si.sku_id,
si.category_id,
t1.sum,
dense_rank() over (partition by category_id order by t1.sum desc) rk
from t1
join sku_info si on t1.sku_id = si.sku_id
)
select * from t2 where t2.rk <=3;
总结:
这个题目的难点在于需要使用排名函数dense_rank() over(),dense_rank排名函数需要进行开窗。使用该函数需要明白是否需要分区,是否需要排序。