原文: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. 分布式中使用Redis实现Session共享(转)

    上一篇介绍了如何使用nginx+iis部署一个简单的分布式系统,文章结尾留下了几个问题,其中一个是"如何解决多站点下Session共享".这篇文章将会介绍如何使用Redis,下一篇 ...

  2. Android中部署自己的su

    本人博客原文 首先把你的自己的su的放到Android应用程序project的assets文件夹,为了和系统的su区分,我自己的su文件叫做sur. 另外我这里没有考虑x86架构的cpu的手机. 废话 ...

  3. java数据结构系列——排列(2):有序阵列

    package Array; /** * 对数组排序.当添加到阵列保持有序数组元素: * @author wl * */ public class MyOrderArray { private lon ...

  4. unity3d 学习笔记_____Native2d 刚体、冲击、联合使用

    Mass Mass of the rigidbody. Linear Drag Drag coefficient affecting positional movement. Angular Drag ...

  5. sqlplus登录问题

    问题1.sqlplus login -- SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory 在/e ...

  6. Visual Studio 2010/2013 查看DLL接口(函数)

    1. “应用程序" Visual Studio 2010/2013 的Visual Studio Tools文件夹中打开Visual Studio Command Prompt 命令提示窗口 ...

  7. 计数排序(C语言版本)

    让我们来谈谈数的排序思维: 计数排序假定待排序的全部元素都是介于0到K之间的整数.计数排序使用一个额外的数组countArray.当中第i个元素是待排序数组array中值等于i的元素的个数.然后依据数 ...

  8. POJ 3013 Big Christmas Tree(最短Dijkstra+优先级队列优化,SPFA)

    POJ 3013 Big Christmas Tree(最短路Dijkstra+优先队列优化,SPFA) ACM 题目地址:POJ 3013 题意:  圣诞树是由n个节点和e个边构成的,点编号1-n. ...

  9. (一)spring MVC基本概念和流程

    MVC的概念 Model(模型):包含数据和行为.不过现在一般都分离开来:Value Object(数据) 和 服务层(行为). View(视图):负责进行模型的展示,一般就是展示给用户的界面. Co ...

  10. IntelliJIDEA Getting+Started+with+Spring+MVC,+Hibernate+and+JSON

    https://confluence.jetbrains.com/display/IntelliJIDEA/Getting+Started+with+Spring+MVC,+Hibernate+and ...