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

 

相关文章推荐

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

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

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

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

SQL Server 2012可编程性新特性_3_THROW

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

SQL Server 2012 新特性 培训资料

  • 2012年03月09日 09:42
  • 17.97MB
  • 下载

SQL Server 2012 开发新特性:文件表

转载于 春哥   一、启用FileTable 1、修改数据库引擎的属性   打开“SQL Server配置管理器”,修改SQL Server数据库引擎的属性。使用此页可针对此 Microsof...

微软SQL Server 2012新特性Silverlight报表客户端 - Power View

微软SQL Server 2012是一个全面的数据库平台,使用集成的商业智能 (BI) 工具提供了企业级的数据管理。其中Reporting Service报表系统是目前最流行的报表设计,开发以及生成工...
  • jv9
  • jv9
  • 2012年04月08日 09:36
  • 1521

SQL Server 2012新特性_列存储索引(1)

做企业应用几年来,每天与SQL Server打交道,深知日益增长的数据给OLTP效率带来的巨大影响,User反应系统慢、有时甚至卡死(通常是出现死锁)。对于有大量OLTP的应用系统来说,系统的运行效率...

SQL Server 2012新特性_列存储索引(3)

本篇Blog将介绍列存储索引相关的性能、查询提示及使用限制等方面的知识。若要了解列存储及列存储索引的概念及特征,请点击这里;若要了解列存储索引的创建与使用,请点击这里。  列存储的性能 要了解类存储索...

SQL Server 2012新特性_列存储索引(2)

在上一篇Blog(SQL Server 2012新特性_列存储索引(1) )中,对列存储及列存储索引的概念及特征等做了一些介绍,接下来,主要对列存储索引的创建与使用做一些演练: 创建COLUMNST...

SQL Server 2012新特性_增强的T-SQL编辑器

T-SQL编辑器在2012里有了进一步的增强,如支持代码片段、支持在完成列表中进行 substring 方式匹配及断点验证等。下面一起来看看: 断点验证 如下图,在2012的编辑器里,在一些无效的位...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL Server 2012可编程性新特性_7_分析函数
举报原因:
原因补充:

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