hive分析函数取最新_Hive的分析函数的学习
我们先准备数据库、表和数据
开窗分析函数相对于mysql中的聚合函数区别是:分析函数是基于某个组多个数据进行计算聚合,而聚合函数是每个组返回一行数据。
官网
我们先做个例子感受下:
要求: 查询部门编号为10的所有的员工,按照薪资降序排序
Mysql实现:select empno,ename,deptno,sal from emp where deptno=10 order by sal desc;
如果要求是:将每个部门薪资最高的那个人的薪资显示在最后一行。
select empno,ename,deptno,sal, max(sal) over(partition by deptno order by sal desc) as sal_max from emp;
我们看官网这个位置
我们来解释里面的概念
当前有一个数据
CURRENT ROW
UNBOUNDED PRECEDING 初始行
PRECEDING 前一行
CURRENT ROW 当前行
FOLLOWING 后一行
UNBOUNDED FOLLOWING 最后一行
所以上面的语句我们变动下
select empno,ename,deptno,sal, max(sal) over(partition by deptno order by sal desc ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) as sal_max from emp;
可以控制窗口大小
结果是一样的,但是窗口大小我们做了变化
我们准备数据
创建一个表
载入数据
load data local inpath '/data/hivetest/anal.txt' into table analytical;
语句1:
我们看结果
语句2
语句3
语句4
语句5
语句6
已上是窗口和基本语句的使用。
我们来看ROW_NUMBER
将每个部门薪资最高的那个人的薪资降序排序并且显示唯一的编号ROW_NUMBER
获取每个部门薪资最高的前两位(嵌套子查询)
hive分析函数取最新_Hive的分析函数的学习相关推荐
- hive UDF函数取最新分区
hive UDF函数取最新分区 1.pom文件 <dependencies><!-- https://mvnrepository.com/artifact/org.apache.hi ...
- oracle上浮下浮分析函数_Oracle SQL高级编程——分析函数(窗口函数)全面讲解...
Oracle SQL高级编程--分析函数(窗口函数)全面讲解 概述 分析函数是以一定的方法在一个与当前行相关的结果子集中进行计算,也称为窗口函数. 一般结构为 Function(arg1 , arg2 ...
- 让 fork 出来的 Github 仓库从远端仓库拖取最新的修改
标准的 Spartacus repo:https://github.com/SAP/spartacus 我 fork 了一个自己的仓库: https://github.com/wangzixi-dia ...
- MySQL去重保留最大的那条记录(取最新的记录)
以用户登录日志表为例,取用户最近登录的设备 1 SET NAMES utf8mb4;2 SET FOREIGN_KEY_CHECKS = 0;3 4 -- ---------------------- ...
- mysql分组分批_[Mysql]分组取最新一条
我有如下这张表的数据,需要根据mobile电话号码分组,每条电话取最新的数据 方案1: SELECT * from (SELECT * from model_online_forecastscore_ ...
- 如何分组取最新的数据
今天有个朋友问我:mysql 根据某个id进行分组,每个分组按时间排序取最新的一条记录,除了使用row_number函数,是否还有其他方法? 其实这是个老生常谈的问题了 ,并且会经常出现在各种面试题中 ...
- oracle针对多数据只取最新一条的sql
业务场景: 在针对某个类型数据存在多条时,但只想取最新的一条.在可以确定时哪种类型时我们使用简单sql就可以解决. 如: select * from ( select * from t_table a ...
- java爬虫系列第二讲-爬取最新动作电影《海王》迅雷下载地址
为什么80%的码农都做不了架构师?>>> 1. 目标 使用webmagic爬取动作电影列表信息 爬取电影**<海王>**详细信息[电影名称.电影迅雷下载地址列表] ...
- 1对多 只取一条 mysql_MySQL 多表关联一对多查询实现取最新一条数据的方法示例...
本文实例讲述了MySQL 多表关联一对多查询实现取最新一条数据的方法.分享给大家供大家参考,具体如下: MySQL 多表关联一对多查询取最新的一条数据 遇到的问题 多表关联一对多查询取最新的一条数据, ...
最新文章
- java selenium iframe_如何使用java在Selenium WebDriver中处理iframe
- python中match方法返回字符串的长度_Python re模块与正则表达式详解
- mysql select查询语句_mysql的select查询语句
- html模块殃射,【Web前端问题】webpack打包后,module模块中的函数无法在html标签的事件中调用?...
- 用VC写Assembly代码(7)--在Visual C++中使用内联汇编
- 对不起,我不接私活了
- 后台MemoryStream图片流用ajax接收乱码问题
- ASP数据库连接方式大全
- 缓存服务的更新策略有哪些?
- ASP.NET AJAX客户端编程之旅(一)——Hello!ASP.NET AJAX
- 大一c语言期末大作业,大一期末C语言大作业—结构体和链表框架
- raspberry ubuntu 修改源为清华_在Windows7基础上安装Ubuntu系统,实现双系统操作
- SECS/GSM 测试工具
- c++ 中 setw()函数
- 云服务器ECS的基本概念
- 关于信息增益(information gain)
- linux 查找某个程序,Linux查找特定程序whereis实例详解
- fuse的安装与使用
- python class函数报错_24 【python入门指南】class
- 【Multisim 14.0】软件安装教程