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;

结果如图:

<span>hive sql 窗口函数</span>

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

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

结果如图:

<span>hive sql 窗口函数</span>

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;

<span>hive sql 窗口函数</span>

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;

<span>hive sql 窗口函数</span>

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

       dense_rank  会对相同数值,输出相同的序号,但下一个序号,间断

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/119643.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • github 网络安全_黑客编程语言

    github 网络安全_黑客编程语言这个开源项目是黑客的多合一工具包,包含了各种黑客工具,比如逆向工程、老鼠工具、SQL注入工具等等。声明:该开源项目仅限学习使用,勿用与从事违法活动。开源地址:https://github.com/Z4nzu/hackingtool这个开源项目是教程序员如何优雅地挣零花钱,本开源项目是一本电子书,从副业的重要性、到程序员可能得副业路径,以及知识付费、课程录制等实战案例为基础,打磨的一本程序员副业指南。开源地址:https://github.com/easychen/lean-side-bussiness“Aw

  • resize函数用法_ubound函数

    resize函数用法_ubound函数resize函数原型voidresize(InputArraysrc,OutputArraydst,Sizedsize,doublefx=0,doublefy=0,intinterpolation=INTER_LINEAR)各个参数的意义比较直观,但是需要注意的是dsize与fx和fy必须不能同时为零,也就是说要么dsize不为零而fx与fy同时可

    2022年10月25日
  • DruidDataSource配置属性列表

    DruidDataSource配置属性列表

  • android之View和ViewGroup介绍

    资源描述: Activity(活动)中包含views(视图)和ViewGroups(视图组)。“视图”(View)就是显示在屏幕上的一个组件(Widget)。View的例子:按钮(Button)、标签(TextView)和文本框(EditText)。每个“视图”(View)都继承自基类android.view.View。“视图组”(ViewGroup)可以包含一个或多个

  • SpringBoot整合Spring Security【超详细教程】

    SpringBoot整合Spring Security【超详细教程】好好学习,天天向上本文已收录至我的Github仓库DayDayUP:github.com/RobodLee/DayDayUP,欢迎Star,更多文章请前往:目录导航前言SpringSecurity是一个功能强大且高度可定制的身份验证和访问控制框架。提供了完善的认证机制和方法级的授权功能。是一款非常优秀的权限管理框架。它的核心是一组过滤器链,不同的功能经由不同的过滤器。这篇文章就是想通过一个小案例将SpringSecurity整合到SpringBoot中去。要实现的功能就是在认证服务器上登录,.

  • 令人期待的PHP7.4

    令人期待的PHP7.4

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号