Netezza SQL Analytic Functions 分析函数
应用场景
主要使用在需要分组计算的场景中,根据所需的计算值可以分为两类:
1,排序类:如排序号,相邻记录等
2,聚合类:如平均值,累加求和,最大值,最末值等
语法
分析函数的语法在各大数据库中基本类似,以基于PostgreSQL的Netezza为例:
Func( value_expression) OVER ( [<partition_by_clause>] [<order_by_clause>] [<frame_spec_clause>] )
<partition_by_clause> = PARTITION BY <value_expression> [, ...]+
<order_by_clause> = ORDER BY <value_expression> [asc | desc] [nulls {first|last}] [, ...]+
<frame_spec_clause> = <frame_extent> [<exclusion clause>]<frame_extent> =
       ROWS  UNBOUNDED PRECEDING
      |ROWS  <constant> PRECEDING
      |ROWS   CURRENT ROW
      |RANGE  UNBOUNDED PRECEDING
      |RANGE  <constant> PRECEDING
      |RANGE  CURRENT ROW
      |ROWS BETWEEN {UNBOUNDED PRECEDING| <constant> PRECEDING | CURRENT
ROW } AND { UNBOUNDED FOLLOWING | <constant>  FOLLOWING | CURRENT ROW }
      |RANGE BETWEEN {UNBOUNDED PRECEDING| <constant> PRECEDING | CURRENT
ROW } AND { UNBOUNDED FOLLOWING | <constant>  FOLLOWING | CURRENT ROW } 
<exclusion_clause> =  EXCLUDE CURRENT ROW | EXCLUDE TIES | EXCLUDE
GROUP | EXCLUDE  NO OTHERS分析函数中的窗口特点
1,row_number(), lead() , lag()...
该类别over字句中必须有order by,且不能再指定窗口范围(frame_spec_clause)
2, max(), count(), sum(), first(), last()...
将每个partition分组后的所有记录称作集合S.
若没有指定order by语句,默认窗口范围为S;
若指定order by语句,按order by字段排序形成排序集合,默认窗口范围为从队首到当前值[S1-SCURRENT]
若指定order by语句同时也指定窗口范围,则按窗口范围来进行计算
参考文章
http://www.cnblogs.com/CareySon/p/3411176.html
http://sqlmag.com/sql-server-2012/how-use-microsoft-sql-server-2012s-window-functions-part-1
Netezza SQL Analytic Functions 分析函数的更多相关文章
- SQL Analytic Functions 分析函数
		应用场景 主要使用在需要分组计算的场景中,根据所需的计算值可以分为两类: 1,排序类:如排序号,相邻记录等 2,聚合类:如平均值,累加求和,最大值,最末值等 语法 分析函数的语法在各大数据库中基本类似 ... 
- Analytic Functions in Oracle
		Contents Overview and IntroductionHow Analytic Functions WorkThe SyntaxExamplesCalculate a running T ... 
- Oracle SQL高级编程——分析函数(窗口函数)全面讲解
		Oracle SQL高级编程--分析函数(窗口函数)全面讲解 注:本文来源于:<Oracle SQL高级编程--分析函数(窗口函数)全面讲解> 概述 分析函数是以一定的方法在一个与当前行相 ... 
- 分析函数(Analytic Functions)
		在OLAP这类系统或者DW这类数据库中,作为某份报表的数据源,我们常常需要在某个存储过程中编写复杂的运算代码来汇总数据.分析函数便具备这样的能力,引用多行的数据值来进行多层面的聚合运算,在数据子集中进 ... 
- Oracle中的sql操作符    和分析函数
		Oracle中的操作符算术操作符:无论是在sqlserver,或者是java中,每种语言它都有算术操作符,大同小异. Oracle中算术操作符(+)(-)(*)(/) 值得注意的是:/ 在oracle ... 
- Oracle sql优化之分析函数优化标量子查询
		待优化语句如下 select a.code as code, a.m_code as m_code,a.stktype as f_stype,a.e_year as e_year, b.sname a ... 
- SQL Server 分析函数和排名函数
		分析函数基于分组,计算分组内数据的聚合值,经常会和窗口函数OVER()一起使用,使用分析函数可以很方便地计算同比和环比,获得中位数,获得分组的最大值和最小值.分析函数和聚合函数不同,不需要GROUP ... 
- SQL Fundamentals || Single-Row Functions || 转换函数  Conversion function
		SQL Fundamentals || Oracle SQL语言 SQL Fundamentals: Using Single-Row Functions to Customize Output使 ... 
- Oracle分析函数之开窗子句-即WINDOWING子句
		Oracle的分析函数,对我们进行统计有很大的帮助,可以避免一些子查询等操作,在统计中,我们对开窗函数的接触较少,下面主要介绍下开窗函数的使用; http://www.itpub.net/thread ... 
随机推荐
- C#入门(面向对象概念)
			也许是看概念性的东西太多了,所以一看基本就明白,但实际并没有掌握,有待实操.反而是UML(统一建模语言)引起了我的兴趣,发现这东东很像建筑行业的图纸:有标准和约定,很方便专业人士看懂程序的架构和逻辑. ... 
- eclipse 断点使用深入技能
			原文:http://blog.jobbole.com/26435/ 摘要:调试不仅可以查找到应用程序缺陷所在,还可以解决缺陷.对于Java程序员来说,他们不仅要学会如何在Eclipse里面开发像样的程 ... 
- 调用 SSPI 失败,请参见内部异常。接收到的消息异常,或格式不正确。
			完整异常信息: System.Security.Authentication.AuthenticationException: 调用 SSPI 失败,请参见内部异常. ---> System.C ... 
- JAVA的界面(Swing)
			现在的程序很多在java中运行,很多时候是Web;很多服务端还是有一个简单的日志文件比较好:或者配置: 今天在看java图形界面开发时,看见已经不怎么更新的库.没有办法,市场决定一切,很多好的东西没有 ... 
- live555+ffmpeg如何提取关键帧(I帧,P帧,B帧)
			live555+ffmpeg如何提取关键帧(I帧,P帧,B帧)开发流媒体播放器的时候,特别是在windows mobile,symbian(S60)平台开发时,很可能遇到需要自己开发播放器的情况.S ... 
- cpio命令用法
			[转自]流浪妖精のSKY http://www.cnitblog.com/flutist1225/articles/18974.html cpio命令用法 cpio命令 利用cpio 可 ... 
- JAVA 常用框架和工具
			集成开发工具(IDE):Eclipse.MyEclipse.Spring Tool Suite(STS).Intellij IDEA.NetBeans.JBuilder.JCreator JAVA服务 ... 
- HTML5 File详解
			input file控件限制上传文件类型 Html5 FileReader 对文件进行Base64编码 FileReader.readAsDataURL 
- 软件调试——CPU异常列表
			CPU异常主要分为三类:错误类异常,陷阱类异常和终止类异常 1 错误类异常 Fault CPU遇到该类异常后,会先将CS和EIP(当前发生错误的指令,而不是下一条指令)压栈,然后跳到异常处理函数中,执 ... 
- 更换win7锁屏壁纸
			1.打开注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Backgroun ... 
