一 题目
计算每年新增用户数。
二 数据表结构:
数据表 orders 是基于 Kaggle 网站的 Superstore 销售数据整理得到,本次涉及的列:
1. order_date:订单日期,格式为VARCHAR(20),具体形式如“11/8/2016”
2. customer_id:客户ID
三 错误写法
代码:
运行结果:
问题:
1. FIRST_VALUE() OVER() 必须带ORDER BY,否则不会按时间先后选择第一条订单
2. 定义orders_first 时,因为SELECT中使用了窗口函数,窗口函数对所有行作用,所以使用的DISTINCT 无法保证只取一条记录
四 修改及改进
语句修改:
改进:
改用ROW_NUMBER()使方案更安全和规范
运行结果:
五 总结
1. 窗口函数FIRST_VALUE() OVER(),必须使用ORDER BY
2. 窗口函数对所有行起作用
3. 使用DISTINCT时,要注意使用位置
— END —
数据分析,一起努力。
Thryze|数据分析 × AI能力成长 × 效率工具探索