水善利万物而不争,处众人之所恶,故几于道💦
题目:
从订单明细表(order_detail)中统计出每种商品销售件数最多的日期及当日销量,如果有同一商品多日销量并列的情况,取其中的最小日期。
with a as(
select
sku_id,
create_date,
sum(sku_num) sum_num,
row_number() over(partition by sku_id order by sum(sku_num) desc) rn
from order_detail group by sku_id,create_date
)
select sku_id,create_date,sum_num from a where rn=1
总结:
-
先以sku_id和create_date分组,然后求sum(sku_num),求出一天的销量
-
然后以销量倒序排序,进行编号,取最高的,也就是目标行