当前位置: 首页 > news >正文

摸鱼大数据——Hive函数14

14、开窗(开列)函数

官网链接:Window Functions - Apache AsterixDB - Apache Software Foundation

14.1 基础使用
开窗函数格式: 开窗函数 over(partition by 分组字段名 [order by 排序字段名 asc|desc] [rows between 开窗开始 and 开窗结束])
​
partition by: 按照谁进行分组
order by: 对分组后的数据进行排序
rows between and: 限定窗口统计数据范围
​
开窗函数分类:第一类: 编号相关。row_number(): 123456。不管数据有没有重复,单调递增往后进行编号rank(): 123446。如果遇到相同数据,那么会重复编号,并且会占用后续的编号dense_rank(): 123445。如果遇到相同数据,那么会重复编号,但是不会占用后续的编号第二类: 聚合函数。count()、sum()、avg()、max()、min()....第三类: 取值函数。ntile()、lag()、lead()、first_value()、last_value()

示例:

use day09;
​
-- 创建表
create table pv_tb(cookieid string,datestr string,pv int
)row format delimited fields terminated by ',';
​
-- 导入数据
load data inpath '/dir/website_pv_info.txt' into table pv_tb;
​
-- 验证数据
select * from pv_tb;
​
-- 编号相关的窗口函数
selectcookieid,datestr,pv,-- row_number:用的最多。单调递增的进行编号,不管重复数据row_number() over(partition by cookieid order by pv asc) as rs1,-- rank:单调递增的进行编号,如果遇到重复数据,编号是相同,同时会占用后面的编号资格rank() over(partition by cookieid order by pv asc) as rs2,-- dense_rank:单调递增的进行编号,如果遇到重复数据,编号是相同,同时不会占用后面的编号资格dense_rank() over(partition by cookieid order by pv asc) as rs3
from pv_tb;
​
​
selectcookieid,datestr,pv,row_number() over(partition by cookieid order by pv asc) as rn,-- 如果有order by那么窗口的大小是慢慢逐渐放大的sum(pv) over(partition by cookieid order by pv asc) as sum_result,-- 如果没有order by那么窗口的大小直接彻底放大到最大sum(pv) over(partition by cookieid) as sum_result2
from pv_tb;

窗口的运行原理:

针对sum(pv) over(partition by cookieid order by pv asc) as sum_result语句

14.2 控制数据范围
开窗函数控制范围: rows between 范围开始 and 范围结束
​
具体的语法含义:1- 范围开始unbounded preceding: 从窗口开始数字 preceding: 前几行数据2- 范围结束unbounded following: 到窗口结束数字 following: 后几行数据3- 特殊的,既能够作为范围开始,也能够作为范围结束current row: 当前行

示例:

-- 控制窗口统计的数据范围
selectcookieid,datestr,pv,sum(pv) over(partition by cookieid order by pv rows between unbounded preceding and current row) as rs1,sum(pv) over(partition by cookieid order by pv rows between 2 preceding and current row) as rs2,sum(pv) over(partition by cookieid order by pv rows between unbounded preceding and unbounded following) as rs3,sum(pv) over(partition by cookieid order by pv rows between 2 preceding and unbounded following) as rs4,sum(pv) over(partition by cookieid order by pv rows between 2 preceding and 2 following) as rs5,sum(pv) over(partition by cookieid order by pv rows between current row and unbounded following) as rs6
from pv_tb;

14.3 其他开窗函数
ntile(n): 将窗口内的数据分配到n个桶里面去,返回的结果是桶的编号。可以使用在数据抽样中
​
lag: 取窗口中上一行的数据
lead: 取窗口中下一行的数据
​
first_value: 取窗口中第一行的数据
last_value : 取窗口中最后一行的数据

示例:

-- 其他函数
selectcookieid,datestr,pv,row_number() over(partition by cookieid order by pv asc) as rn,-- ntile(n):将窗口内的数据分配到n个桶里面去,返回的结果是桶的编号ntile(3) over(partition by cookieid order by pv asc) as rs1,-- 取窗口中上一行的数据lag(pv) over(partition by cookieid order by pv asc) as rs2,-- 取窗口中下一行的数据lead(pv) over(partition by cookieid order by pv asc) as rs3,-- 取窗口中第一行的数据first_value(pv) over(partition by cookieid order by pv asc) as rs4,-- 取窗口中最后一行的数据last_value(pv) over(partition by cookieid order by pv asc) as rs5
from pv_tb;

相关文章:

摸鱼大数据——Hive函数14

14、开窗(开列)函数 官网链接:Window Functions - Apache AsterixDB - Apache Software Foundation 14.1 基础使用 开窗函数格式: 开窗函数 over(partition by 分组字段名 [order by 排序字段名 asc|desc] [rows between 开窗开始 and 开窗结束]) ​ partition b…...

elasticsearch的常规操作--增删改查和批量处理

1、_cat 查询 GET /_cat/nodes: 查看所有节点 GET /_cat/health: 查看es 健康状况 GET /_cat/master: 查看主节点 GET /_cat/indices:查看所有索引show databases; 2、索引一个文档(保存) 保存一个数据&…...

盘点2024年还在活跃发版的开源私有网盘项目附源码链接

时不时的会有客户上门咨询,丰盘ECM是不是开源项目,源码在哪里可以下载;如果需要和内部其他系统做集成,购买商业版的话,能否提供源代码做二次开发呢,等等诸多问题。 这里做个统一回复,丰盘ECM产…...

MySQL 使用方法以及教程

一、引言 MySQL是一个流行的开源关系型数据库管理系统(RDBMS),广泛应用于Web开发、数据分析等领域。它提供了高效、稳定的数据存储和查询功能。同时,Python作为一种强大的编程语言,也提供了多种与MySQL交互的库&#…...

算法学习笔记——二进制

二进制 负数的十进制转二进制数(-2 -> 1110): 正数 - 1,再取反,得到负数的二进制。 例如:-2 :0010 -> 0010 - 1 -> 0001 -> 取反 -> 1110 负数的二进制转十进制(…...

计算机网络介绍

计算机网络介绍 概述网络概述相关硬件 链路层VLAN概念VLAN 特点VLAN 的划分帧格式端口类型原理 STP概念特点原理 Smart Link概念特点组网 网络层ARP概念原理 IP概念版本IP 地址 IPv4IP 地址数据报格式 IPv6特点IP 地址数据报格式 ICMP概念分类报文格式 VRRP概念原理报文格式 OS…...

解锁数据宝藏:高效查找算法揭秘

代码下载链接:https://gitee.com/flying-wolf-loves-learning/data-structure.git 目录 一、查找的原理 1.1 查找概念 1.2 查找方法 1.3平均查找长度 1.4顺序表的查找 1.5 顺序表的查找算法及分析 1.6 折半查找算法及分析 1.7 分块查找算法及分析 1.8 总结…...

利用EasyCVR视频智能监控技术,构建智慧化考场监管体系

随着科技的进步,视频监控在各个领域的应用越来越广泛,其中在考场中的应用尤为显著。视频监控不仅能够提高考场的监管水平,确保考试的公平、公正和公开,还能有效预防和打击作弊行为,为考生营造一个良好的考试环境。 传…...

深度解析:速卖通618风控下自养号测评的技术要点

速卖通每年的618大促活动平台的风控都会做升级,那相对的测评技术也需要进行相应的做升级,速卖通618风控升级后,自养号测评需要注意以下技术问题,以确保测评 的稳定性和安全性: 一、物理环境 1. 硬件参数伪装&#x…...

国产算力——沐曦GPU性能及应用

沐曦集成电路(上海)有限公司(简称“沐曦”)成立于2020年9月,专注于为异构计算提供全栈GPU芯片及解决方案,满足数据中心对“高性能”、“高能效”及“高通用性”的算力需求。 产品系列 沐曦构建了全栈高性…...

贪心算法拓展(反悔贪心)

相信大家对贪心算法已经见怪不怪了,但是一旦我们的决策条件会随着我们的步骤变化,我们该怎么办呢?有没有什么方法可以反悔呢? 今天就来讲可以后悔的贪心算法,反悔贪心。 https://www.luogu.com.cn/problem/CF865Dhttp…...

在spring框架的基础上自定义autowired注解

在Spring框架的基础上自定义Autowired注解是不可能的,因为注解本身是Java语言的一部分,并且Autowired是Spring框架提供的注解,用于实现自动装配。但是,你可以创建自己的注解,并结合Spring框架的扩展机制来实现类似的功…...

2005NOIP普及组真题 3. 采药

线上OJ: [05NOIP普及组] 采药 核心思想: 1、题与 2006 年普及组第2题《开心的金明》一样,考察的都是01背包。 2、直接套用01背包的一阶模板即可 a、限定时间看成背包总容量m b、每件物品的采药时间 v 看成占用背包的体积 c、每件物品的价格w作为该物品的…...

preventDefault()与stopPropagation()有什么区别?

1、event.preventDefault()方法 (1)可防止元素的默认行为 (2)如果在表单元素中使用,它将阻止其提交 (3)如果在锚元素中使用,它将阻止其导航 (4)如果在上下…...

AIGC 全面介绍

随着人工智能技术的不断进步,生成式人工智能(AI Generated Content, AIGC)成为了一个日益热门的话题。AIGC 指利用人工智能技术生成各类内容,包括文本、图像、音频、视频等。与传统的内容生成方法相比,AIGC 具有速度快…...

网站入门:Flask用法讲解

Flask是一个使用Python编写的轻量级Web服务框架,旨在帮助开发人员快速构建和部署Web应用程序。下面将对Flask进行更为详细的解释说明,并展示其使用示例与注意事项: 1.解释说明 定义及特点: Flask以其简洁和灵活著称,允许开发者以…...

头歌数据库备份与恢复

第1关:数据库的备份和恢复 mysql -uroot -p123123 -h127.0.0.1 < /data/workspace/myshixun/src/data.sqlmysqldump -u root -p studb student> /student_bk.sqlmysql -uroot -p123123 -h127.0.0.1 -e "create database studb2;"mysql -u root -p123123 studb…...

小程序项目创建与Vant-UI引入

一&#xff0c;创建小程序项目 AppID可先用测试号&#xff1b; 模板来源选择 ’全部来源‘ &#xff0c;’基础‘ 。模板一定JS开头的&#xff1b; vant-weapp 官网 vant-Weapp 二&#xff0c;下载vant-weapp 组件 1&#xff0c;在新项目中打开 ’调试器‘&#xff1b; 2…...

xtrabackup 使用

官网 Percona XtraBackup Use APT repositories - Percona XtraBackup 一 安装 下载 wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb wget https://repo.percona.com/apt/percona-release_latest.zesty_all.deb 可下载列表 Perc…...

C++写一个简单的计算器程序案例

1. 编写C源代码 创建一个名为 advanced_calculator.cpp 的文件&#xff0c;并编写以下代码&#xff1a; // advanced_calculator.cpp #include <iostream> #include <limits>int main() {char operatorChoice;bool keepRunning true;while (keepRunning) {int nu…...

LFM2.5-1.2B-Thinking-GGUF部署教程:适配A10/A100/L4等主流GPU显存优化方案

LFM2.5-1.2B-Thinking-GGUF部署教程&#xff1a;适配A10/A100/L4等主流GPU显存优化方案 1. 模型简介与核心优势 LFM2.5-1.2B-Thinking-GGUF 是 Liquid AI 推出的轻量级文本生成模型&#xff0c;专为低资源环境优化设计。该模型采用 GGUF 格式存储&#xff0c;配合高效的 llam…...

颠覆中文字体困境:思源宋体CN 7字重开源方案深度解析

颠覆中文字体困境&#xff1a;思源宋体CN 7字重开源方案深度解析 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 价值主张&#xff1a;破解中文字体的"三重枷锁" 在数字设计…...

半导体器件入门:金半接触的5个关键概念解析(附手稿能带图)

半导体器件入门&#xff1a;金半接触的5个关键概念解析&#xff08;附手稿能带图&#xff09; 第一次翻开半导体物理教材时&#xff0c;金半接触那一章总是让人既兴奋又困惑。那些弯曲的能带图、费米能级的移动、神秘的势垒高度&#xff0c;就像一道通往微电子世界的大门。本文…...

从Dify到Coze再回来:一个后端开发用Gin+Swagger构建AI工作流的踩坑实录

从Dify到Coze再回来&#xff1a;一个后端开发用GinSwagger构建AI工作流的踩坑实录 作为一名长期使用Gin框架的后端开发者&#xff0c;当我第一次尝试将现有服务接入Dify平台构建AI工作流时&#xff0c;本以为会是一次顺畅的旅程。毕竟&#xff0c;我们的API已经通过Swagger 2.0…...

2026职业红利:AI智能体运营岗位培训如何助你实现高薪跨越?

导读&#xff1a; 2026年&#xff0c;职场竞争的底层逻辑已悄然改变。当传统运营还在为写一段文案、剪一个视频熬夜时&#xff0c;掌握了 AI 智能体技术的“新运营人”已经通过自动化工作流&#xff0c;实现了 10 倍速的产出。目前&#xff0c;市场对AI智能体运营经理、AI内容策…...

Java应用Istio mTLS启用后gRPC调用持续超时?紧急解锁x509证书链校验、SNI配置与Java SSLContext动态刷新机制

第一章&#xff1a;Java应用Istio mTLS启用后gRPC调用持续超时&#xff1f;紧急解锁x509证书链校验、SNI配置与Java SSLContext动态刷新机制当Istio启用严格mTLS&#xff08;STRICT模式&#xff09;后&#xff0c;Java客户端通过gRPC调用服务端频繁出现DEADLINE_EXCEEDED超时&a…...

TinyCheck开发指南:从源码结构到核心类设计,理解网络安全检测平台架构

TinyCheck开发指南&#xff1a;从源码结构到核心类设计&#xff0c;理解网络安全检测平台架构 【免费下载链接】TinyCheck TinyCheck allows you to easily capture network communications from a smartphone or any device which can be associated to a Wi-Fi access point …...

终极指南:如何使用RPGMakerDecrypter轻松解密游戏资源

终极指南&#xff1a;如何使用RPGMakerDecrypter轻松解密游戏资源 【免费下载链接】RPGMakerDecrypter Tool for extracting RPG Maker XP, VX and VX Ace encrypted archives. 项目地址: https://gitcode.com/gh_mirrors/rp/RPGMakerDecrypter RPGMakerDecrypter是一款…...

从零开始:用Chipyard和FireSim在云端FPGA上仿真你的第一个RISC-V SoC

从零开始&#xff1a;用Chipyard和FireSim在云端FPGA上仿真你的第一个RISC-V SoC 在数字时代&#xff0c;RISC-V架构以其开放性和灵活性正在重塑计算领域。对于渴望探索SoC设计的开发者而言&#xff0c;云端FPGA资源与开源工具链的结合&#xff0c;彻底打破了硬件开发的高门槛。…...

Stable Diffusion工作流升级:Pixel Fashion Atelier预设Prompt库详解

Stable Diffusion工作流升级&#xff1a;Pixel Fashion Atelier预设Prompt库详解 1. 项目概述 像素时装锻造坊&#xff08;Pixel Fashion Atelier&#xff09;是一款基于Stable Diffusion与Anything-v5模型的图像生成工作站。这个创新工具将复古日系RPG的视觉风格与现代AI图像…...