进来闲来无事,总结一下数仓面试吧!希望对小白有点用!
有50W个某东网站店铺,每个顾客访客访问任何一个店铺的任何一个商品时都会产生一条访问日志,访问日志存储的表名为Visit,访客的用户id为user_id,被访问的店铺名称为shop,请统计:
1)每个店铺的UV(访客数)
2)每个店铺访问次数top3的访客信息。输出店铺名称、访客id、访问次数
1
首先,先明白什么是旁uv?
PV(Page View)访问量, 即页面浏览量或点击量,衡量网站用户访问的网页数量;在一定统计周期内用户每打开或刷新一个页面就记录1次,多次打开或刷新同一页面则浏览量累计。
即(独立的访客)Unique Visitor,访问您网站的一台电脑客户端为一个访客。在00:00-24:00内对相同的客户端的操作只会被计算一次。
建表语句
create table second_visit (user_id string,shop string);
插入数据
insert into table second_visit values ('1','a');
insert into table second_visit values ('1','b');
insert into table second_visit values ('2','a');
insert into table second_visit values ('3','c');
insert into table second_visit values ('1','a');
insert into table second_visit values ('1','a');
首先,先去重(group by),首先按用户id去重,在按照门店去重。
select
user_id,
shop
from second_visit
group by user_id,shop;
结果为:
OK