分析函数--FIRST_VALUE,LAST_VALUE,LAG,LEAD,ROW_NUMBER

4 篇文章 0 订阅
订阅专栏
一 ,FIRST_VALUE,LAST_VALUER的使用
1,FIRST_VALUE 是指返回组中数据窗口的第一个值
2,LAST_VALUE 是指返回组中数据窗口的最后一个值(注意点:不受排序的影响,后面发现是因为没有开窗导致的)

例子:
SELECT DEPARTMENT_ID,
FIRST_NAME || ' ' || LAST_NAME EMPLOYEE_NAME,
HIRE_DATE,
SALARY,
FIRST_VALUE(FIRST_NAME || ' ' || LAST_NAME || ':'|| SALARY) OVER(PARTITION BY DEPARTMENT_ID ORDER BY SALARY) AS LOWEST_SAL,
FIRST_VALUE(FIRST_NAME || ' ' || LAST_NAME || ':'|| SALARY) OVER(PARTITION BY DEPARTMENT_ID ORDER BY SALARY DESC) AS HIGHEST_SAL,
LAST_VALUE(FIRST_NAME || ' ' || LAST_NAME || ':'|| SALARY) OVER(PARTITION BY DEPARTMENT_ID ORDER BY SALARY) AS LAST_SAL,
LAST_VALUE(FIRST_NAME || ' ' || LAST_NAME || ':'|| SALARY) OVER(PARTITION BY DEPARTMENT_ID ORDER BY SALARY DESC) AS LAST_SAL_DESC
FROM HR.EMPLOYEES


上面的例子,并不能得到期待结果。
原因是没有指定开窗子句,
order by会加上一个默认窗口RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW.
正确的写法:
增加上指定窗口为所有行--ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING

SELECT DEPARTMENT_ID,
FIRST_NAME || ' ' || LAST_NAME EMPLOYEE_NAME,
HIRE_DATE,
SALARY,
FIRST_VALUE(FIRST_NAME || ' ' || LAST_NAME || ':'|| SALARY) OVER(PARTITION BY DEPARTMENT_ID ORDER BY SALARY) AS LOWEST_SAL,
FIRST_VALUE(FIRST_NAME || ' ' || LAST_NAME || ':'|| SALARY) OVER(PARTITION BY DEPARTMENT_ID ORDER BY SALARY DESC) AS HIGHEST_SAL,
LAST_VALUE(FIRST_NAME || ' ' || LAST_NAME || ':'|| SALARY) OVER(PARTITION BY DEPARTMENT_ID ORDER BY SALARY
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS LAST_SAL,
LAST_VALUE(FIRST_NAME || ' ' || LAST_NAME || ':'|| SALARY) OVER(PARTITION BY DEPARTMENT_ID ORDER BY SALARY DESC
LAST_VALUE(FIRST_NAME || ' ' || LAST_NAME || ':'|| SALARY) OVER(PARTITION BY DEPARTMENT_ID ORDER BY SALARY DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS LAST_SAL_DESC
FROM HR.EMPLOYEES


二,LAG,LEAD函数的使用
1,LAG可以访问结果集中的其它行而不用进行自连接。它允许去处理游标,就好像游标
是一个数组一样。在给定组中可参考当前行之前的行,这样就可以从组中与当前行一起选择
以前的行。Offset 是一个正整数,其默认值为 1,若索引超出窗口的范围,就返回默认值(默
认返回的是组中第一行),其相反的函数是 LEAD
2,LEAD 与 LAG 相反,LEAD 可以访问组中当前行之后的行。Offset 是一个正整数,
其默认值为 1,若索引超出窗口的范围,就返回默认值(默认返回的是组中第一行)

例子:
SELECT FIRST_NAME || ' ' || LAST_NAME EMPLOYEE_NAME,
HIRE_DATE,
SALARY,
LAG(SALARY, 1, 0) OVER(ORDER BY HIRE_DATE ) AS 比当前前一个的薪酬,
LEAD(SALARY, 1, 0) OVER(ORDER BY HIRE_DATE ) AS 比当前后一个的薪酬
FROM HR.EMPLOYEES



三,ROW_NUMBE的使用
1,ROW_NUMBE是指 返回有序组中一行的偏移量,从而可用于按特定标准排序的行号。
也可以利用他排除重复的数据

例子:

SELECT DEPARTMENT_ID,
FIRST_NAME || ' ' || LAST_NAME EMPLOYEE_NAME,
EMPLOYEE_ID,
ROW_NUMBER() OVER(PARTITION BY DEPARTMENT_ID ORDER BY EMPLOYEE_ID) AS EMP_ID
FROM HR.EMPLOYEES



Hive分析窗口函数row_number,LAG,LEAD,FIRST_VALUE,LAST_VALUE
someInNeed的博客
04-21 751
学习这四个分析函数。 注意: 这几个函数不支持WINDOW子句。Hive版本为 apache-hive-0.13.1数据准备: 水电费 cookie1,2015-04-10 10:00:02,url2 cookie1,2015-04-10 10:00:00,url1 cookie1,2015-04-10 10:03:04,1url3 cookie1,201...
窗口函数LEAD,LAG, FIRST_VALUE, LAST_VALUE
蕾欧娜与26的博客
09-20 1229
这篇博客给大家介绍 Hive 中最常用的四个窗口函数,分别是:LEAD, LAG, FIRST_VALUE 以及 LAST_VALUE。 FIRST_VALUE:取分组内排序后,截止到当前行,第一个值。 LAST_VALUE:取分组内排序后,截止到当前行,最后一个值。 LEAD (col, n, default):用于统计窗口内往下滴 n 行值。第一个参数为列名,第二个参数为往下滴 n 行(默认为 1 ),第三个参数为默认值(当往下第n行为NULL时候,取默认值,如不指定,则为NULL) LAG (col
Oracle 高级查询之分析函数部分--first_value,last_value
08-09
Oracle 高级查询之分析函数部分--first_value,last_value
Oracle 高级查询之二 分析函数部分--first_value,last_value
congjiong5980的博客
01-21 699
ORACLE函数:LAST_VALUE,FIRST_VALUE的用法: 1、初始化原始数据:create table test (id number(2), name varchar2(10), salary number(6...
HiveSQL中last_value和first_value函数的应用
最新发布
07-29 719
今天做一个数据分析,其中有一列数据有些有数据有些没数据,因此我们需要把每数据的进行补充进来因此我们需要使用last_value 函数和over 结合使用,但是遇到一个比较奇葩的问题不能按照预期进行处理。
分析函数——FIRST_VALUE()和LAST_VALUE()
cuituancheng9378的博客
06-12 1419
FIRST_VALUE()和LAST_VALUE()字面意思已经很直观了,取首尾记录值。 例:查询部门最早发生销售记录日期和最近发生的销售记录日期 SQL> select *from criss_sales ord...
Oracle分析函数-first_value()和last_value()
z69183787的专栏
09-06 2184
到目前为止,我们所学习的分析函数在计算/统计一段时间内的数据时特别有用,但是假如计算/统计需要随着遍历记录集的每一条记录而进行呢?举些例子来说:①列出每月的订单总额以及全年的订单总额②列出每月的订单总额以及截至到当前月的订单总额③列出上个月、当月、下一月的订单总额以及全年的订单总额④列出每天的营业额及一周来的总营业额⑤列出每天的营业额及一周来每天的平均营业额。
first_value和last_value
weixin_48109576的博客
09-07 3164
SQL中分析函数first_value(),last_value,sum() over(partition by…)详解 首先,生成有一张原始表score,s_id表示学生id,c_id表示课程id,s_core表示最后课程的成绩,表结构数据如下所示: 首先,按照课程c_id进行分组,按照成绩s_core进行排序 select * ,row_number() over (partition by c_id order by s_score)rank_showfrom score 1 运行结果:
Hive分析窗口函数: LAGLEAD、FIRST_VALUE、LAST_VALUE
热门推荐
菜如张学清的博客
07-17 2万+
目录 1.数据准备 1.1数据格式 1.2创建表 2.LAG 2.1函数说明 2.2函数使用 2.3 查询结果 2.4 结果说明 3. LEAD 3.1 函数说明 3.2 函数使用 3.3 查询结果 4.FIRST_VALUE 4.1 函数说明 4.2 函数使用 5.LAST_VALUE 5.1 函数说明 5.2 函数使用 5.3 查询结果 5.4 取...
Hive分析窗口函数(四) LAG,LEAD,FIRST_VALUE,LAST_VALUE
阿尼古
04-16 590
问题导读1.LAG功能是什么?2.LEADLAG功能有什么相似的地方那个?3.FIRST_VALUE与LAST_VALUE分别完成什么功能? 继续学习这四个分析函数LAG,LEAD,FIRST_VALUE,LAST_VALUE)。注意: 这几个函数不支持WINDOW子句。 Hive版本为 apache-hive-0.13.1 数据准备: cookie1,2019-04-1...
hive窗口函数之ntile、laglead、first_value、last_value
MicoOu的博客
03-17 1726
目录1.样例数据2.ntile(n)2.1实例 1.样例数据 id crtime pv cookie1,2015-04-10,1 cookie1,2015-04-11,5 cookie1,2015-04-12,7 cookie1,2015-04-13,3 cookie1,2015-04-14,2 cookie1,2015-04-15,4 cookie1,2015-04-16,4 cook...
first_value和last_value的用法
12-07 311
first_value和last_value的用法:返回结果集中排在第一位和最后一位的值.SQL> desc studentName Type Nullable Default C...
Oracle分析函数:First_Value
elimago的专栏
07-15 1万+
 FIRST_VALUE 功能描述:返回组中数据窗口的第一个值。有些类似于SQL Server中的first(),但用法完全不一样,而功能也强大一些。 SQL> create table EMP(  id   number,  name varchar2(20),  age  number,  POS VARCHAR2(20));SQL>  alter table EM
firstvalue函数mysql_MySQL 窗口函数之头尾函数
weixin_42717586的博客
01-27 1522
本文标识:MQ0018本文编辑 :长安月下赏美人儿编程工具 :MySQL、DBeaver阅读时长 :6分钟1、头尾函数(1)应用场景:快速查看某个窗口范围中的第一个或者最后一个指定的字段的数值(2)头尾函数分类及基础语法FIRST_value(指定字段)OVER(PARTITION BY 分区的字段 ORDER BY 排序的字段 DESC/ASC)LAST_value(字段)OVER (PART...
开窗函数-first_value/last_value
yuhui666666的博客
09-09 6679
开窗函数用于为行定义一个窗口(这里的窗口是指运算将要操作的行的集合),它对一组值进行操作,不需要使用GROUP BY子句对数据进行分组,能够在同一行中同时返回基础行的列和聚合列。可以看到使用last_value函数求每个人最后一个日期,结果并不是想要的。last_value()默认是升序,如果限制了是降序,则等同于first_value()升序。开窗函数的功能本质是聚合,但是相比聚合,开窗函数可以提供的信息更多。3、first_value/last_value函数。1、开窗函数是什么?
Oracle 12c 之分析函数— FIRST_VALUE
梅森上校的博客 业精于勤荒于嬉,形成于思毁于随。
10-12 1656
Oracle 12c 之分析函数— FIRST_VALUE FIRST_VALUE是一个分析函数,它返回一个有序的值集合中的第一个值。如果集合中的第一个值为NULL,则函数将返回NULL,除非指定忽略NULL。 下面我们来看看如何使用这个分析函数: 以Oracle 12c Sample中的HR用户为例,查找部门编号为90部门的员工的最低工资: SELECT employee_id, las...
分析函数(NTIL的使用和first/last的使用)
12-08 337
分析函数(NTIL的使用和first/last的使用)########################NTIL的使用########################有时我们会收到类似下面这样的需求:找出订单总额排名前1/5的客户...
[Mysql] FIRST_VALUE()函数 | LAST_VALUE()函数 | NTH_VALUE()函数
Hudas的博客
06-05 5377
FIRST_VALUE()函数 | LAST_VALUE()函数 | NTH_VALUE()函数
写文章

热门文章

  • 分析函数-STDDEV,STDDEV_SAMP ,STDDEV_POP,VAR_POP,VAR_SAMP,VARIANCE 5687
  • Oracle两种临时表的创建 3040
  • 分析函数——函数 RANK,DENSE_RANK,FIRST,LAST 1481
  • 分析函数--FIRST_VALUE,LAST_VALUE,LAG,LEAD,ROW_NUMBER 891
  • 分析函数学习 495

分类专栏

  • 数据库迁移 1篇
  • 1篇
  • 分析函数 4篇
  • 函数 1篇

最新评论

  • 分析函数-STDDEV,STDDEV_SAMP ,STDDEV_POP,VAR_POP,VAR_SAMP,VARIANCE

    鲜卑大帝: VARIANCE 和VAR_POP有什么区别?

大家在看

  • 大模型技术从入门到进阶的学习路线梳理,收藏这一篇就够了
  • springboot相关
  • 深入理解 RabbitMQ 及在.NET 中的应用
  • 自动化测试工具Ranorex Studio(十)-在测试套件中使用数据 174
  • 懒加载与预加载:优化网页性能的两把利器

最新文章

  • 数据迁移oracle11G数据核对
  • 分析函数-STDDEV,STDDEV_SAMP ,STDDEV_POP,VAR_POP,VAR_SAMP,VARIANCE
  • merge into的模板使用
2021年1篇
2017年6篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家肇庆玻璃钢鼠年雕塑玻璃钢雕塑设计与生活路边玻璃钢花盆图片价格蚌埠户外玻璃钢雕塑设计西方人玻璃钢雕塑北京大型商场美陈市场报价上海玻璃钢花盆生产广州定制玻璃钢面包雕塑新乡价值观校园玻璃钢景观雕塑浙江特色玻璃钢雕塑销售电话山东大型商场美陈哪家好上海耐高温玻璃钢雕塑制造厂家深圳多彩玻璃钢雕塑定制个性化玻璃钢雕塑定制韶关玻璃钢动物雕塑参考价枝江玻璃钢造型雕塑青县玻璃钢花盆花器玻璃钢萝卜雕塑佛山三水玻璃钢卡通雕塑河北步行街玻璃钢雕塑生产厂家玻璃钢布朗熊可妮兔雕塑成品玻璃钢花盆设计厂家大型主题商场美陈现价白银市玻璃钢雕塑定制商场美陈招标标书公园商场美陈商场美陈布置课堂农安玻璃钢雕塑工程价格襄阳玻璃钢雕塑熊猫定制舟山玻璃钢陶瓷雕塑设计香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化