|
| 1 | +/* |
| 2 | +需求: |
| 3 | +要求统计一周内每日访问量pv最高的站点 |
| 4 | +数据如下: |
| 5 | +day,website,pv |
| 6 | +2019-10-01,www.blogtech.top,13 |
| 7 | +2019-10-01,www.sqlfun.cn,10 |
| 8 | +2019-10-01,www.sqlpower.top,9 |
| 9 | +2019-10-01,www.sqlpower.tech,15 |
| 10 | +2019-10-02,www.blogtech.top,13 |
| 11 | +2019-10-02,www.sqlfun.cn,9 |
| 12 | +2019-10-02,www.sqlpower.top,9 |
| 13 | +2019-10-03,www.sqlpower.tech,15 |
| 14 | +2019-10-04,www.blogtech.top,13 |
| 15 | +2019-10-04,www.sqlfun.cn,9 |
| 16 | +2019-10-05,www.sqlpower.top,9 |
| 17 | +2019-10-06,www.sqlpower.tech,15 |
| 18 | +2019-10-07,www.blogtech.top,13 |
| 19 | +2019-10-07,www.sqlfun.cn,10 |
| 20 | +*/ |
| 21 | + |
| 22 | +-- 1. 建表 |
| 23 | +set hive.exec.mode.local.auto=true; --开启Hive的本地模式 |
| 24 | + |
| 25 | +drop table if exists user_website_pv; |
| 26 | +create temporary table user_website_pv( |
| 27 | + day string, |
| 28 | + website string, |
| 29 | + pv int |
| 30 | +) row format delimited fields terminated by ',' |
| 31 | +stored as textfile |
| 32 | +tblproperties( |
| 33 | + "skip.header.line.count"="1" --跳过文件首的1行 |
| 34 | + --"skip.footer.line.count"="n" --跳过文件尾的n行 |
| 35 | +); |
| 36 | + |
| 37 | +load data local inpath '/tmp/sgr/user_website_pv.csv' into table user_website_pv; |
| 38 | + |
| 39 | +-- 2. 处理 |
| 40 | + |
| 41 | +select a.day,a.website,a.sum_pv from ( |
| 42 | + select day,website,sum(pv) as sum_pv, |
| 43 | + row_number() over(partition by day order by sum(pv) desc) rank |
| 44 | + from user_website_pv where day |
| 45 | + BETWEEN date_sub('2019-10-07', 7) and '2019-10-07' |
| 46 | + group by day,website |
| 47 | +) a where a.rank=1; |
| 48 | + |
| 49 | + |
| 50 | +/* |
| 51 | +结果: |
| 52 | +2019-10-01 www.sqlpower.tech 15 |
| 53 | +2019-10-02 www.blogtech.top 13 |
| 54 | +2019-10-03 www.sqlpower.tech 15 |
| 55 | +2019-10-04 www.blogtech.top 13 |
| 56 | +2019-10-05 www.sqlpower.top 9 |
| 57 | +2019-10-06 www.sqlpower.tech 15 |
| 58 | +2019-10-07 www.blogtech.top 13 |
| 59 | +*/ |
| 60 | + |
| 61 | + |
| 62 | + |
| 63 | + |
0 commit comments