关闭

compute

标签: sql
515人阅读 评论(0) 收藏 举报
分类:
GROUP BY子句有个缺点,就是返回的结果集中只有合计数据,而没有原始的详细记录。如果想在SQL SERVER中完成这项工作,可以使用COMPUTE BY子句。COMPTE生成合计作为附加的汇总列出现在结果集的最后。当与BY一起使用时,COMPUTE 子句在结果集内生成控制中断和分类汇总。
1 不能将distinct与行统计函数一起使用
2 compute   by 中列出的列必须出现在选择列表中
3 不能在含有compute by 子句的语句中使用select into 子句,因为包括compute 子句的语句会产生不规则的行。
compute 用了 by子句,则必须使用order by , 且compute by中的列必须是order by列表的全部,或者前边的连续几个
5 compute 省略了 by ,则order by 也可以省略。
6 compute by 子句包含多列时,会将一个组(第一个列分的组)分成若干个子组(利用后面的列),并对每层子组进行统计。
7 compute by 子句中可以使用多个统计函数,他们互不影响。
8 compute 不包含by 时不对前面信息分组,而只对全部信息进行统计。
9 COMPUTE 所生成的汇总值在查询结果中显示为单独的结果集。
COMPUTE 生成的结果集
当 COMPUTE 带 BY 子句时,符合 SELECT 条件的每个组都有两个结果集:
每个组的第一个结果集是明细行集,其中包含该组的选择列表信息。
每个组的第二个结果集有一行,其中包含该组的 COMPUTE 子句中所指定的聚合函数的小计。
当 COMPUTE 不带 BY 子句时,SELECT 语句有两个结果集:
每个组的第一个结果集是包含选择列表信息的所有明细行。
第二个结果集有一行,其中包含 COMPUTE 子句中所指定的聚合函数的合计。
COMPUTE 和 GROUP BY比较
COMPUTE 和 GROUP BY 区别:
GROUP BY 生成单个结果集。每个组都有一个只包含分组依据列和显示该组子聚合的聚合函数的行。选择列表只能包含分组依据列和聚合函数。
COMPUTE 生成多个结果集。一种结果集包含每个组的明细行,其中包含选择列表中的表达式。
例子:
原始表:
部门 员工 工资 年龄
            ZHANG     100    20
            LI        200    21
            WANG      300    22
            ZHAO      400    23
            DUAN      500    24
            DUAN      600    25
1.GROUP BY
SELECT 部门,员工,SUM(工资)AS TOTAL,avg(年龄)as年龄
FROM PERSON
GROUP BY 部门,员工
结果:
部门 员工 工资 年龄
            DUAN      1100    24
            LI        200    21
            WANG      300    22
            ZHANG     100    20
            ZHAO      400    23
2.COMPUTE
SELECT 部门,员工,工资,年龄
FROM PERSON
ORDER BY 部门,员工
COMPUTE  SUM(工资) ,avg(年龄)
结果:
部门 员工 工资 年龄
            LI        200    21
            WANG      300    22
            ZHANG     100    20
            ZHAO      400    23
            DUAN      500    24
            DUAN      600    25
sum avg
2100    22
(3)COMPUTE  BY
SELECT 部门,员工,工资,年龄
FROM PERSON
ORDER BY 部门,员工
COMPUTE  SUM(工资) ,avg(年龄) by 部门
结果
部门 员工 工资 年龄
            LI        200    21
            WANG      300    22
            ZHANG     100    20
            ZHAO      400    23
sum avg
1000    21
部门 员工 工资 年龄
            DUAN      500    24
            DUAN      600    25
sum avg
1100    24
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Unity3D Compute Shader 新解 简单体绘制技术与点吸引【三】

Unity3D Compute Shader 新解体绘制技术与吸收【三】1.Compute Shader是一个DX11的大特点,显然它真的开放了GPU的运算 2.Compute Shader的价值也是非常大的,在科学、工程、医学、各种应用上显而易见 3.GPU的浮点运算和精度比CPU高几个数量级...
  • baidu_26153715
  • baidu_26153715
  • 2015-05-15 23:43
  • 3229

C#中DataTable中的Compute方法使用

转自:http://blog.csdn.net/smartsmile2012/article/details/8309664 Compute函数的参数就两个:Expression,和Filter。 Expresstion是计算表达式,关于Expression的详细内容请看这里“http:...
  • fengxing11
  • fengxing11
  • 2016-10-19 19:28
  • 1207

树莓派学习笔记——Model B Model B+ Compute Module Dev Kit的区别和联系

最近浏览器树莓派官方发现树莓派推出了两款新Model——一款名为树莓派 model B+,一款名为树莓派 Compute Module Dev Kit。带着欣喜和恐惧查阅了相关资料,并通过淘宝和RS中国了解开发板价格。欣喜的感觉来自于树莓派的功能得到了增强,恐惧来自于树莓派的改变带来新的学习成本。经...
  • xukai871105
  • xukai871105
  • 2014-07-27 17:51
  • 14208

如何通过ARM Compute Library写深度学习模型

在上一篇博客中已经讲了挺多关于arm compute library的情况。 传送们在这里!!! http://blog.csdn.net/u014432647/article/details/73613642 这篇薄荷主要是想将一下如何用arm compute library写深度学习模型。...
  • u014432647
  • u014432647
  • 2017-07-07 16:54
  • 1688

Spark核心RDD:计算函数compute

RDD的计算是惰性的,一系列转换操作只有在遇到动作操作是才会去计算数据,而分区作为数据计算的基本单位。在计算链中,无论一个RDD有多么复杂,其最终都会调用内部的compute函数来计算一个分区的数据。 1.compute方法 RDD抽象类要求其所有子类都必须实现compute方法,该方法介绍的参数之...
  • jiangpeng59
  • jiangpeng59
  • 2016-11-18 11:41
  • 2448

Unity3D Compute Shader 晋级 网格模拟与奶茶泡泡【四】

Unity3D Compute Shader 晋级 网格模拟与特效【四】1.每一个不曾舞蹈的日子,都是对生命的辜负…. 2.Compute Shader对于她自己来说,所有能实现的效果只是冰山一角http://blog.csdn.net/column/details/shader-style.ht...
  • baidu_26153715
  • baidu_26153715
  • 2015-05-18 13:25
  • 2727

[ComputeShader]实例化大网格

ComputeShader,利用GPU加速数据处理
  • carefreeq
  • carefreeq
  • 2017-02-06 18:14
  • 1295

nova-compute不能成功启动的原因总结

按照官方文档做到添加compute服务时,列出服务组件以验证是否每个进程都成功启动:$ nova service-list 发现如下结果:(缺少nova-compute的服务) [root@controller ~]# nova service-list +----+----------------...
  • zhouminganga
  • zhouminganga
  • 2015-11-11 18:21
  • 4287

学会看openstack的日志

OpenStack日志 日志对于一个稳定的系统来说相当重要,对于OpenStack这样一个大型的系统,日志当然也是必不可少,理解Openstack系统的日志对于保证OpenStack环境稳定非常重要。对于出现系统错误,查看日志是一个很好的习惯。 OpenStack通过生成大量日志信息来帮助排查...
  • tuolaji8
  • tuolaji8
  • 2016-09-13 10:03
  • 950

vm 创建虚拟机及登录

记录一下 1.创建一个新的虚拟机 选择操作系统 选择安放路径,虚拟机名称 设置磁盘大小 选择虚拟光盘 这样虚拟机就创建成功了 然后开机 会读取你的光驱    ctrl+alt切换鼠标键盘从虚拟机中 对cp...
  • superliang11
  • superliang11
  • 2018-01-05 18:15
  • 126
    个人资料
    • 访问:123867次
    • 积分:2073
    • 等级:
    • 排名:千里之外
    • 原创:89篇
    • 转载:32篇
    • 译文:0篇
    • 评论:14条
    文章分类
    最新评论