第一题
- 准备数据
1 | userId visitDate visitCount |
- 要求使用SQL统计出每个用户的累积访问次数,如下表所示
1 | 用户id 月份 小计 累积 |
- 创建表
1 | create table action |
- 解答
1 | select |
1 | select |
1 | select |
第二题
- 有50W个京东店铺,每个顾客访问任何一个店铺的任何一个商品时都会产生一条访问日志,访问日志存储的表名为visit,访客的用户id为user_id,被访问的店铺名称为shop,请统计:
- 准备数据
1 | u1 a |
- 建表
1 | create table visit(user_id string,shop string) row format delimited fields terminated by '\t'; |
- 求每个店铺的UV(访客数)
1 | // 第一种方法,但生产环境一般不能这样,distinct会导致内从溢出 |
1 | 1.去重 |
生产环境中当使用distinct时,可利用group by来替换
- 每个店铺访问次数top3的访客信息。输出店铺名称、访客id、访问次数
1 | 1. 计算每个人访问每个店铺的总次数 |