前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2017-07-20#Hive Analytics Functions : row_number rank over

2017-07-20#Hive Analytics Functions : row_number rank over

作者头像
大数据工程师-公子
发布2019-03-14 15:54:13
4160
发布2019-03-14 15:54:13
举报

2017-07-20#Hive Analytics Functions : row_number rank over

在做数据分析是,会统计用户访问app不同页面的开始时间,理论上同一个用户访问不同页面的开始时间应该不同。为了排查app端是否存在bug,用到row_number() over () 窗口函数。

row_number over

sql如下

代码语言:javascript
复制
select
a.gu_id,starttime,
row_number() over (partition by gu_id order by starttime) rn
from test.fct_path_list_off_5levels a
where a.date = '2017-07-19'
and gu_id = "00000000-0000-0030-ffff-ffffef748aff";

效果如下:

a.gu_id

starttime

rn

00000000-0000-0030-ffff-ffffef748aff

1500437284798

1

00000000-0000-0030-ffff-ffffef748aff

1500437284798

2

00000000-0000-0030-ffff-ffffef748aff

1500437285979

3

00000000-0000-0030-ffff-ffffef748aff

1500437286845

4

00000000-0000-0030-ffff-ffffef748aff

1500437287872

5

00000000-0000-0030-ffff-ffffef748aff

1500437290902

6

00000000-0000-0030-ffff-ffffef748aff

1500437291624

7

00000000-0000-0030-ffff-ffffef748aff

1500437298189

8

00000000-0000-0030-ffff-ffffef748aff

1500437316584

9

00000000-0000-0030-ffff-ffffef748aff

1500437328388

10

00000000-0000-0030-ffff-ffffef748aff

1500437328548

11

00000000-0000-0030-ffff-ffffef748aff

1500437340583

12

00000000-0000-0030-ffff-ffffef748aff

1500448200225

13

00000000-0000-0030-ffff-ffffef748aff

1500448202219

14

00000000-0000-0030-ffff-ffffef748aff

1500448202987

15

根据这个结果,我们可以知道,尽管有相同的记录,row_number还是会根据order by字段依次递增编号,且编号不重复。

rank() OVER

sql如下

代码语言:javascript
复制
select
a.gu_id,starttime,
rank() OVER (partition by gu_id order by starttime) rn
from test.fct_path_list_off_5levels a
where a.date = '2017-07-19'
and gu_id = "00000000-0000-0030-ffff-ffffef748aff";

结果如下:

a.gu_id

starttime

rn

00000000-0000-0030-ffff-ffffef748aff

1500437284798

1

00000000-0000-0030-ffff-ffffef748aff

1500437284798

1

00000000-0000-0030-ffff-ffffef748aff

1500437285979

3

00000000-0000-0030-ffff-ffffef748aff

1500437286845

4

00000000-0000-0030-ffff-ffffef748aff

1500437287872

5

00000000-0000-0030-ffff-ffffef748aff

1500437290902

6

00000000-0000-0030-ffff-ffffef748aff

1500437291624

7

00000000-0000-0030-ffff-ffffef748aff

1500437298189

8

00000000-0000-0030-ffff-ffffef748aff

1500437316584

9

00000000-0000-0030-ffff-ffffef748aff

1500437328388

10

00000000-0000-0030-ffff-ffffef748aff

1500437328548

11

00000000-0000-0030-ffff-ffffef748aff

1500437340583

12

00000000-0000-0030-ffff-ffffef748aff

1500448200225

13

00000000-0000-0030-ffff-ffffef748aff

1500448202219

14

00000000-0000-0030-ffff-ffffef748aff

1500448202987

15

对比row_number 和 rank() OVER 的结果,可以发现,rank在处理相同的记录时候,编号是一样的,同时编号就不再连续,直到遇到有差异的记录。

Hive 官方文档

Hive LanguageManual+WindowingAndAnalytics

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年02月22日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2017-07-20#Hive Analytics Functions : row_number rank over
    • row_number over
      • rank() OVER
        • Hive 官方文档
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档