问题描述
订单表有三个字段:类目、日期和商家ID,请取出每个类目每个月的动销商家数和截止到当月的累计动销商家数,结果如右表所示。
分析问题
以数码电器为例:
1月份动销商家有101和102两家,累计动销商家也是两家;
2月份有动销商家101和103两家,因为101在1月份已经出现过,所以累计动销商家只有101、102、103三家;
3月份有动销商家102和103两家,都在前面月份出现过,所以累计动销商家仍是只有101、102、103三家。
所以这里的关键是如何标记新增商家?我们可以使用row_number窗口函数,按照类目和商家分组,日期排序排列,编号如下。
解决问题
1、准备数据
-- 删除表
drop table if exists orders;
-- 建表
CREATE TABLE orders (
category string,
pay_date string,