专栏首页大数据仓库建设Hive Analytics Functions row_number rank over partition by

Hive Analytics Functions row_number rank over partition by

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

row_number over

sql如下

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如下

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 官方文档 Windowing And Analytics

Hive LanguageManual+WindowingAndAnalytics

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

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

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

    大数据工程师-公子
  • MyEclipse详解以及MyEclipse7.5的优化

         转自:http://www.oecp.cn/hi/yongtree/blog/348(请点这里看原文)

    大数据工程师-公子
  • Hive UDF 手册

    等值比较: = 语法:A = B 操作类型: 所有基本类型 描述: 如果表达式A与表达式B相等,则为TRUE;否则为FALSE 举例:

    大数据工程师-公子
  • 2017-07-20#Hive Analytics Functions : row_number rank over

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

    大数据工程师-公子
  • Docker搭建比特币测试网络

    1.2 安装RPC支持库kapitalize kapitalize的源码:https://github.com/shamoons/Kapitalize

    foochane
  • 用python实现自动发送天气预报

    假如我们给多个人发送天气情况,这几个人来自不同的城市,那么我们不可能每次都要输入城市名,然后查找城市码,然后再访问接口,获取天气情况,这样会非常的麻烦,所以我们...

    dogfei
  • 荐读 | “侧抑制”卷积神经网络,了解一下?

    本文作者曹春水, 2013年获得中国科学技术大学本科学位。目前是中国科学技术大学与中国科学院自动化研究所联合培养的在读博士,将于2018年6月份博士毕业。主要研...

    马上科普尚尚
  • Relu激活函数

    神经元是神经网络中最基本的结构,也可以说是神经网络的基本单元,它的设计灵感完全来源于生物学上神经元的信息传播机制。我们学过生物的同学都知道,神经元有两种状态:兴...

    于小勇
  • 文旅融合风口下的新文创探索

    近日,腾讯为云南省定制的全国首个省级文旅IP形象——云南云,亮相2019中国国际旅游交易会。

    刘旷
  • AXI中wrap边界的计算

    在AXI中,主要是三种猝发模式,FIXED,INCR,WRAP。前两种比较容易理解,第三种的边界计算如下。

    数字IC小站

扫码关注云+社区

领取腾讯云代金券