原文:SqlServer-COMPUTE BY

COMPUTE BY子句可以通过同一个select语句即查看明细行,又查看汇总行.可以计算子组的汇总值,也可以计算整个结果集的汇总值

COMPUTE 子句需要以下信息:

1. 可选的By关键字可按对一列计算指定的行聚合

2. 行聚合函数:sum,avg,min,max,count

3. 要对其执行行聚合函数的列

COMPUTE 所生成的汇总值在查询结果中显示为分离的结果集,包括COMPUTE子句的查询的结果类似于控制中断报表,即汇总值由指定的组控制的报表.可以为各组生成汇总值,也可以对同一组计算多个聚合函数.

当COMPUTE带有可选的By子句时,符合select条件的每个组都有两个结果集:

1. 每个组的第一个结果集是明细行集,其中包含该组的选择列表信息

2. 每个组的第二个结果集有一行,其中包含该组COMPUTE子句中所指定的聚合函数的小记

示例:

Sql:

select sex,sclass,score

from student

order by sex

compute sum(score) by sex

注意:order by是必须的,并且 compute by后的参数应该在order by后的参数中出现过

当COMPUTE不带有可选的By子句时,Select有两个结果集:

1. 每个组的第一个结果集是包含选择列表的所有明细行的信息

2. 第二个结果集有一行,其中包含COMPUTE子句中所指定的聚合函数的合计

例如:

Sql:

select sex,sclass,score

from student

compute sum(score)

比较compute 和 group by ,区别如下:

1. group by生成单个结果集,每个组都有一个只包含分组依据列和显示该组子聚合的聚合函数的行,选择列表只能包含分组依据列和聚合函数.

2. COMPUTE生成多个结果集,一类结果集包含每个组的明细行,其中包含选择列表中的表达式,另一类结果集包含组的子聚合.

3. 选择列表可包含分组依据列或聚合函数之外的其他表达式;聚合函数在compute 子句中指定,而不是出现在选择列表中.

SqlServer-COMPUTE BY的更多相关文章

  1. SQLServer 之 Group By 和 Compute By

    创建测试表,如下: CREATE TABLE tableTest ( Id INT PRIMARY KEY, DepartMent ), Name ), Salary int ) 添加测试数据,如下图 ...

  2. SQLServer 版本之八大方法搞清 "我是谁"

    你正在使用 SQL Server 的哪个版本? 贴士:作为一个SQL Server数据库管理者或维护.支持人员,应该会经常问自己这样一个问题:我当前SQL Server版本号是?当前版本已经有的累计更 ...

  3. C#中DataTable中的Compute方法使用收集

    原文: C#中DataTable中的Compute方法使用收集 Compute函数的参数就两个:Expression,和Filter. Expresstion是计算表达式,关于Expression的详 ...

  4. SQLSERVER中的ALL、PERCENT、CUBE关键字、ROLLUP关键字和GROUPING函数

    SQLSERVER中的ALL.PERCENT.CUBE关键字.ROLLUP关键字和GROUPING函数 先来创建一个测试表 USE [tempdb] GO )) GO INSERT INTO [#te ...

  5. SQLSERVER中的假脱机spool

    SQLSERVER中的假脱机spool 我发现网上对于假脱机的解释都非常零散,究竟假脱机是什么? 这几天在家里研究了一下,收集了很多网上的资料 假脱机是中文的翻译,而英文的名字叫做 spool 在徐老 ...

  6. DataTable.Compute()用法

    DataTable.Compute()用法 2010-04-07 11:28 一.DataTable.Compute()方法說明如下 作用:          计算用来传递筛选条件的当前行上的给定表达 ...

  7. sqlserver 死锁原因及解决方法

    其实所有的死锁最深层的原因就是一个:资源竞争 表现一: 一个用户A 访问表A(锁住了表A),然后又访问表B,另一个用户B 访问表B(锁住了表B),然后企图访问表A,这时用户A由于用户B已经锁住表B,它 ...

  8. DataTable.Compute方法使用实例

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...

  9. Declare Cusror of SQLServer

    Defines the attributes of a Transact-SQL server cursor, such as its scrolling behavior and the query ...

  10. SqlServer跨库查询

    由于业务的拆分,数据库拆分为两种作用: 汇总数据库(Master,头节点数据库), 子节点数据库(Compute Node,计算子节点数据库) 这样,就设计到子节点访问头节点数据库中的某张汇总表,这种 ...

随机推荐

  1. POJ 2531-Network Saboteur(DFS)

    Network Saboteur Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 9435   Accepted: 4458 ...

  2. vs2013提交github代码

    vs2013的新特性之一就是可以方便的通过集成的git工具管理git代码.今天简单给大家演示 在github新建仓库 复制仓库地址 克隆仓库到本地(这一步非常重要,只有顺利获取github的code, ...

  3. android做设计的每一个屏幕尺寸和分辨率(一个)

    一个.与分辨率无关 1.使用dp(dpi) Android密度不依赖像素(dp)指定屏幕尺寸,它同意不同的屏幕尺寸和像素密度类似设备通过缩放来达到同样的效果. (不解决不同屏幕尺寸的问题?) 2.的资 ...

  4. EXCEL 两人的建立Y轴

    在本文中,EXCEL2013基于,操作的其他版本基本上相同模式 原始数据和最后的结果如下面的: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvanloX2p ...

  5. OUC_OptKernel_oshixiaoxiliu_好题推荐

    poj1112 Team Them Up! 补图二分图+dp记录路径codeforces 256A Almost Arithmetical Progression dp或暴力 dp[i][j] = d ...

  6. C#实现异步消息队列

    原文:C#实现异步消息队列 拿到新书<.net框架设计>,到手之后迅速读了好多,虽然这本书不像很多教程一样从头到尾系统的讲明一些知识,但是从项目实战角度告诉我们如何使用我们的知识,从这本书 ...

  7. java.util.Timer demo good

    package timer; import java.util.Date; import java.util.Timer; import java.util.TimerTask; import org ...

  8. Session or Cookie?是否有必要使用Tomcat等一下Web集装箱Session

    Cookie是HTTP协议标准下的存储用户信息的工具.浏览器把用户信息存放到本地的文本文件里. Session是基于Cookie实现的. 2011年4月,武汉群硕面试的时候(实习生).面试官也问过这个 ...

  9. 开始学习java

    .net 许久 看网络java猿飞计划,感觉成了少数类,学校为它,有多难不,有着vb,C,javascript和vs基金会,这并不是说一些语法和框架的熟悉做,搞两天,以一个开发环境,myeclipse ...

  10. uva 1500 - Alice and Bob(论证)

    option=com_onlinejudge&Itemid=8&page=show_problem&problem=4246" target="_blank ...