专栏首页文渊之博hive sql 窗口函数

hive sql 窗口函数

1) 窗口函数 Lag, Lead, First_value,Last_value Lag, Lead、这两个函数为常用的窗口函数,可以返回上下数据行的数据. LAG(col,n,DEFAULT) 用于统计窗口内往上第n行值 LEAD(col,n,DEFAULT) 用于统计窗口内往下第n行值, 与LAG相反 -- 组内排序后,向后或向前偏移 -- 如果省略掉第三个参数,默认为NULL,否则补上。

select
    dp_id,
    mt,
    payment,
    LAG(mt,2) over(partition by dp_id order by mt) mt_new
from test2;

结果如图:

-- 组内排序后,向后或向前偏移 -- 如果省略掉第三个参数,默认为NULL,否则补上。

select
   dp_id,
   mt,
   payment,
   LEAD(mt,2,'1111-11') over(partition by dp_id order by mt) mt_new
from test2;

结果如图:

FIRST_VALUE, LAST_VALUE first_value: 取分组内排序后,截止到当前行,第一个值 last_value: 取分组内排序后,截止到当前行,最后一个值 -- FIRST_VALUE 获得组内当前行往前的首个值 -- LAST_VALUE 获得组内当前行往前的最后一个值 -- FIRST_VALUE(DESC) 获得组内全局的最后一个值

select
   dp_id,
   mt,
   payment,
   FIRST_VALUE(payment) over(partition by dp_id order by mt) payment_g_first,
   LAST_VALUE(payment) over(partition by dp_id order by mt) payment_g_last,
  FIRST_VALUE(payment) over(partition by dp_id order by mt desc) payment_g_last_global
from test2
ORDER BY dp_id,mt;

2)排名函数 Rank,Dense_Rank, Row_Number R() over (partion by col1... order by col2... desc/asc)

select
   class1,
   score,
   rank() over(partition by class1 order by score desc) rk1,
   dense_rank() over(partition by class1 order by score desc) rk2,
   row_number() over(partition by class1 order by score desc) rk3
from zyy_test1;

如上图所示,rank 会对相同数值,输出相同的序号,而且下一个序号不间断; dense_rank 会对相同数值,输出相同的序号,但下一个序号,间断

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Hive sql窗口函数源码分析

    在了解了窗口函数实现原理 spark、hive中窗口函数实现原理复盘 和 sparksql比hivesql优化的点(窗口函数)之后,今天又撸了一遍hive sq...

    数据仓库践行者
  • HIVE窗口函数

    窗口函数的应用场景http://yugouai.iteye.com/blog/1908121

    努力在北京混出人样
  • HIVE窗口函数

    CSDN博客地址:https://mp.csdn.net/mdeditor/81067060

    努力在北京混出人样
  • Hive窗口函数

    Hive官网,点我就进 oracle,sqlserver都提供了窗口函数,但是在mysql5.5和5.6都没有提供窗口函数!

    孙晨c
  • SQL 窗口函数

    MYSQL 从 8.0.2 版本起开始支持窗口函数,那么在窗口函数没出来之前,我们要实现类似的功能该怎么做呢?

    白日梦想家
  • hive 窗口分析函数

    0: jdbc:hive2://localhost:10000> select * from t_access; ±---------------±-----...

    曼路
  • Hive SQL开窗函数实战

    开窗函数是数据的一种查询统计语法糖,多是用于离线统计,这同时也是大数据技术栈的应用场景。今天学习Hive SQL的开窗(窗口)函数,对比与MySQL,在MySQ...

    公众号guangcity
  • Hive窗口函数03-CUME_DIST、PERCENT_RANK

    注意:CUME_DIST、PERCENT_RANK均不支持WINDOW子句(between...and...)

    CoderJed
  • Hive补充之窗口函数

    窗口函数 1、hive窗口函数语法 hive中的窗口函数over() ,over()窗口函数的语法结构

    ChinaManor

扫码关注云+社区

领取腾讯云代金券