Spark SQL 之开窗函数

本文介绍了Spark SQL中的开窗函数,包括row_number()的实际应用,阐述了开窗函数与普通聚合函数的区别,并通过代码示例展示了如何在DataFrame中使用开窗函数进行数据处理。
摘要由CSDN通过智能技术生成

目录

 

一:开窗函数

二:row_number()开窗函数实战

三:开窗函数与一般函数使用的区别?


一:开窗函数


开窗函数的由来:
在开窗函数出现之前存在着非常多用 SQL 语句非常难解决的问题,非常多都要通过复杂的相关子查询或者存储过程来完毕。为了解决这些问题,在2003年ISO  SQL标准增加了开窗函数,开窗函数的使用使得这些经典的难题能够被轻松的解决。眼下在 MSSQLServer、Oracle、DB2 等主流数据库中都提供了对开窗函数的支持

作用:
开窗函数(OVER子句)用于为行定义一个窗口(这里的窗口是指运算将要操作的行的集合),它对一组值进行操作,不需要使用GROUP BY子句对数据进行分组,能够在同一行中同时返回基础行的列和聚合列

窗口函数与普通聚合函数的区别:
与 聚 合函数一样,开窗函数也是对行集组进行聚合计算,可是它不像普通聚合函数那样
每组仅仅返回一个值,开窗函数能够为每组返回多个值,由于开窗函数所运行聚合计算的行集组是窗体

聚合:
SELECT FCITY , FAGE ,  

  SELECT COUNT(* ) FROM T_Person 
  WHERE FSALARY<5000 

FROM T_Person 

开窗
SELECT FCITY , FAGE , COUNT(*) OVER() FROM T_Person 

优势:简化书写与代码读取

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值