compute by 子句可通过同一个select语句既查看明细行,又查看汇总行。可计算子组的汇总值,也可计算整个结果集的汇总值。
1、可选的by关键字,指定按哪一列分组的基础上进行聚合。所以如果使用by关键字,则之前必须使用order by ,并且分组的列和排序的列一致。如果不带by关键字,则是对整个结果集进行汇总。
2、行聚合函数:count,max,min,sum,avg
3、使用compute [by]子句的select语句将产生2个结果集。
(1)一个为select 指定的明细行的结果集。
(2)另一个为compute [by] 指定聚合函数计算的汇总结果集。

compute [by]和group by的区别:

1、group by 只有一个结果集。其select的列只能包含分组依据列和聚合函数。

create table Score(
    ScoreID int primary key identity(1,1) not null,
    Sid int foreign key references Student(Sid) not null,
    Pid int foreign key references ProjectTb(Pid) not null,
    Score int
)
insert into dbo.Score(Sid,Pid,Score)
values(1,1,90),(1,2,67),(1,3,84),(2,1,90),(2,2,62),(2,3,87),(3,1,80),(3,2,83),(3,3,89)

select * from dbo.Score

select Sid,sum(Score)
from dbo.Score
group by Sid

2、compute [by]产生多个结果集。一类结果集为每个组的明细行数据(其中必须但不限于聚合表达式参数列,允许但不强制包含分组依据列)。另一类结果集则为子组的聚合计算结果。

select ScoreID,Pid,Score
from dbo.Score
order by Sid
compute sum(Score) by Sid

此处如果select的字段不包括Score,则会报错:COMPUTE 子句 #1、聚合表达式 #1 不在选择列表中。

SQL Server compute [by]相关推荐

  1. Oracle 9i与MS SQL Server 2000之比较连载五.zz

    http://kb.cnblogs.com/a/1153156 Oracle 9i与MS SQL Server 2000之比较连载五 2008-04-14 18:13 四.Oracle中新的数据库对象 ...

  2. 看懂SQL Server的查询计划(绝对好文!)

    在园子看到一篇SQLServer关于查询计划的好文,激动啊,特转载.原文出自:http://www.cnblogs.com/fish-li/archive/2011/06/06/2073626.htm ...

  3. SQL Server基础知识之:设计和实现视图

    设计和实现视图可谓是数据库物理设计中的一个非常重要的步骤.从一般意义上说,设计和实现视图应该遵循下面的一些建议和原则. 以下内容摘在文档,我对某些重点进行了补充说明(红色部分) 只能在当前数据库中创建 ...

  4. SQL Server 运行计划操作符具体解释(2)——串联(Concatenation )

    本文接上文:SQL Server 运行计划操作符具体解释(1)--断言(Assert) 前言: 依据计划.本文開始讲述另外一个操作符串联(Concatenation).读者能够依据这个词(中英文均可) ...

  5. [转载]在SQL Server数据库之间进行数据导入导出,OPENDATASOURCE

    需要在c盘下先建立一个data.txt文件,然后在文件的第一行写上你要导出的列,不如说要导出id和name这两列,就在第一行写上 id,name 然后保存,使用下列SQL就可以了,你如果要保持原有的I ...

  6. 如何仅从SQL Server DateTime数据类型返回日期

    SELECT GETDATE() 回报: 2008-09-22 15:24:13.790 我希望该日期部分没有时间部分: 2008-09-22 00:00:00.000 我该怎么办? #1楼 尝试这个 ...

  7. 利用SQL Server EXISTS结构

    有件东西我观察了很多年,那就是很少有开发者会去使用SQL Server中的一个非常有用的东西--EXISTS结构.你可以在各种情况中用到EXISTS结构,在这篇文章中我会向大家介绍其中的一些. EXI ...

  8. SQL Server 2000 Service Pack 4 中所修复的 bug 的列表

    有关在 SQL Server 2000 Service Pack 4 已修复的 bug 的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 314128  FIX: 一 ...

  9. SQL SERVER CURSOR

    一:认识游标 游标(Cursor)它使用户可逐行访问由SQL Server返回的结果集. 使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式. 用SQL语言从数据库中检索数据 ...

  10. 【SQL Server学习笔记】SQL SERVER 视图

    视图包括:普通视图,索引视图,分布式分区视图. 关于视图的最佳实践: A.对视图进行性能优化的过程和普通的select查询语句的优化过程是一样的. B.不要在一个视图的定义中调用另一个视图. C.如果 ...

最新文章

  1. 复分析可视化方法:笔记:log(z)的可视化微分法
  2. javascript中操作字符串小结
  3. java List及其实现类
  4. php 中文相等_php判断字符串是否相等
  5. sql server(常用)
  6. 第三课 泛型+反射封装数据库访问层 2019-04-02
  7. 个人应用开发详记. (三)
  8. From AlphaGo Zero to 2048论文分享
  9. hadooppythonsql_python - hadoop,mapreduce demo
  10. 当模型预测控制遇见机器学习
  11. Android Studio下“Error:Could not find com.android.tools.build:gradle:2.2.1”的解决方法
  12. 第二天matplotlib绘图
  13. 30 行代码实现蚂蚁森林自动“偷”能量
  14. 苹果修复严重的代码执行漏洞,影响 iOS 和 iPadOS 操作系统
  15. JAVA 的StringBuffer类
  16. 通过web的方式动态查看tomcat的catalina.out的日志(web.py)
  17. python里数字怎么表示_Python 中的数字—Python 学习笔记
  18. 如何在 Mac 上自定 Safari 浏览器窗口?
  19. 小作业-drawline换成drawrectangle和fillRectangle
  20. vue项目接入eslint、prettier、husky+lint-staged

热门文章

  1. Bootstrap3 标题样式
  2. Word导航窗格显示自定义标题样式的方法
  3. matlab norm函数_机器人手眼标定MATLAB及C++实现(二十九)
  4. Python调用图灵机器人API
  5. 软件测试人员必备的7种思维方式
  6. 【食游香港6】全港最正宗奶茶、中环白领最爱餐蛋茄牛肉面、宵夜小食
  7. 跳跃表(skiplist )详解及其C++编程实现
  8. 易基因-【直播预告】国自然热门选题 - 博士后带你了解m6A RNA甲基化
  9. BZOJ4487 [Jsoi2015]染色问题
  10. 读后感系列-2.《看见》柴静(二)