SQL Server 2012可编程性新特性_7_分析函数

原创 2012年03月28日 14:03:13

SQL Server 2012 支持以下分析函数:CUME_DIST、PERCENT_RANK、FIRST_VALUE、LAST_VALUE、LAG、LEAD、PERCENTILE_CONT、PERCENTILE_DISC,用来基于一组行计算聚合值。不过,与聚合函数不同,它们可能针对每个组返回多行。 可以使用分析函数来计算移动平均线、运行总计、百分比或一个组内的前 N 个结果。

  • CUME_DIST( )与PERCENT_RANK( )
    CUME_DIST用来计算某个值在一组值内的累积分布,即在一组值中的相对位置。对于行 r,假定采用升序,r 的 CUME_DIST 是值低于或等于r 的值的行数除以在分区或查询结果集中求出的行数。PERCENT_RANK用来计算一组行内某行的相对排名,即计算一个值在查询结果集或分区中的相对位置。

    MSDN:http://msdn.microsoft.com/zh-cn/library/hh231078.aspx  & http://msdn.microsoft.com/zh-cn/library/hh213573.aspx
  • FIRST_VALUE()与LAST_VALUE()
    FIRST_VALUE()用来返回有序值集中的第一个值,而LAST_VALUE()则返回有序值集中的最后一个值。


    MSDN:http://msdn.microsoft.com/zh-cn/library/hh213018.aspx  &   http://msdn.microsoft.com/zh-cn/library/hh231517.aspx
  • LAG()与LEAD()
    LAG()用来访问相同结果集的先前行中的数据,而不使用 SQL Server 2012 中的自联接。LAG 以当前行之前的给定物理偏移量来提供对行的访问。 在 SELECT 语句中使用此分析函数可将当前行中的值与先前行中的值进行比较。

    LEAD()用来访问相同结果集的后续行中的数据,而不使用 SQL Server 2012 中的自联接。LEAD 以当前行之后的给定物理偏移量来提供对行的访问。 在 SELECT 语句中使用此分析函数可将当前行中的值与后续行中的值进行比较。



    MSDN:http://msdn.microsoft.com/zh-cn/library/hh231256.aspx  & http://msdn.microsoft.com/zh-cn/library/hh213125.aspx

  • PERCENTILE_CONT()与PERCENTILE_DISC()
    PERCENTILE_CONT()用来基于 SQL Server 2012 列值的连续分布计算百分位数。将内插结果,且结果可能不等于列中的任何特定值。
    PERCENTILE_DISC()用来计算 SQL Server 2012 中整个行集内或行集的非重复分区内已排序值的特定百分位数。对于给定的百分位数的值 P,PERCENTILE_DISC 对 ORDER BY 子句中表达式的值进行排序,并返回具有最小 CUME_DIST 值且大于或等于P 的值(遵照相同的排序规范)。 例如,PERCENTILE_DISC (0.5) 将计算表达式的第 50 百分位数(也即中值)。 PERCENTILE_DISC 基于列值的离散分布来计算百分位数;结果等于列中的一个特定值。
    注意:这两个函数可能不返回相同的值。 这是因为,PERCENTILE_CONT 内插适当的值,而无论它在数据集中是否存在,而 PERCENTILE_DISC 始终从数据集中返回实际值。


    MSDN:http://msdn.microsoft.com/zh-cn/library/hh231473.aspx  & http://msdn.microsoft.com/zh-cn/library/hh231327.aspx

 

SQL Server 2012 新功能一览

微软于3月7日正式发布SQL Server 2012(以后简称SQL2012)。SQL2012发布之前,有幸公费参加2011微软技术大会(北京),当时不是称为SQL Server 2012,而是其前身...
  • Burgess_Liu
  • Burgess_Liu
  • 2012年03月23日 09:10
  • 8441

SQL Server 2012可编程性新特性_5_sp_describe_first_result_set

过去,如果要确定查询或存储过程的返回结果类型,需要使用SET FMTONLY命令。使用该命令可以在不需要实际执行查询的情况下预览返回结果的列信息。可惜的是,返回的信息仅仅局限于列的定义,而如果只要先前...
  • Burgess_Liu
  • Burgess_Liu
  • 2012年03月27日 12:59
  • 1575

SQL Server 2012可编程性新特性_1_Sequence

SQL Server 2012可编程性新增了一些新的特性,这些特性使得我们的日常工作变得更加简单,下面一起来学习一下: 序列(Sequence)是一种用户定义的架构绑定对象,它根据创建该序列时采用的规...
  • Burgess_Liu
  • Burgess_Liu
  • 2012年03月26日 16:14
  • 1315

SQL Server 2012可编程性新特性_2_OFFSET

通过 OFFSET-FETCH 子句,您可以从结果集中仅提取某个时间范围或某一页的结果。OFFSET-FETCH 只能与 ORDER BY 子句一起使用。 如下,从排序的结果集中跳过前2行并返回接下来...
  • Burgess_Liu
  • Burgess_Liu
  • 2012年03月26日 21:44
  • 1044

SQL Server 2012可编程性新特性_3_THROW

T-SQL从2005年就开始支持TRY-CATCH ,但直到2012才有THROW。THROW不带参数,其用法与C#和VB中catch块中的throw类似。也就是说,它会重新抛出异常,而不会丢失当时捕...
  • Burgess_Liu
  • Burgess_Liu
  • 2012年03月27日 08:58
  • 1123

[SQLServer2005] 分析函数 (又称窗口函数)

1.简介: SQL Server 2005中的窗口函数帮助你迅速查看不同级别的聚合,通过它可以非常方便地累计总数、移动平均值、以及执行其它计算。窗口函数功能非常强大,使用起来也十分容易。可以使用这个技...
  • xiaoxu0123
  • xiaoxu0123
  • 2010年01月03日 13:57
  • 5882

功能强大的全新 T-SQL 语法极大地提升了 SQL Server 的可编程性

发布日期: 11/15/2004 | 更新日期: 11/15/2004Itzik Ben-Gan 本文是根据 Microsoft SQL Server 代号“Yukon”的 Beta 1 编写的,此处...
  • hiyaolee
  • hiyaolee
  • 2005年12月29日 20:00
  • 1167

SQLServer分析函数 (又称窗口函数)

1.简介: SQL Server 中的窗口函数帮助你迅速查看不同级别的聚合,通过它可以非常方便地累计总数、移动平均值、以及执行其它计算。 窗口函数功能非常强大,使用起来也十分容易。可以使用这个...
  • dupizi
  • dupizi
  • 2015年05月24日 00:31
  • 785

SQL Server 2012可编程性新特性_4_WITH RESULT SETS

在之前的版本基础上,2012新增了可以使用 WITH RESULT SETS 选项定义结果集的元数据的功能。我们知道,存储过程中返回结果集是很常见的,但如果想要控制部分返回结果集的字段名和数据类型将会...
  • Burgess_Liu
  • Burgess_Liu
  • 2012年03月27日 11:04
  • 1509

SQL Server 2012可编程性新特性_6_14个新的内置函数

SQL Server 2012 引入了 14 个新的内置函数。这些新函数是: 转换函数(3个):PARSE、TRY_CONVERT、TRY_PARSE 日期和时间函数(7个):DATEFROMPAR...
  • Burgess_Liu
  • Burgess_Liu
  • 2012年03月28日 10:16
  • 1478
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL Server 2012可编程性新特性_7_分析函数
举报原因:
原因补充:

(最多只允许输入30个字)