SQL Server数据汇总完全解析

wangjinpeng95

wangjinpeng95

2016-01-29 16:01

SQL Server数据汇总完全解析,SQL Server数据汇总完全解析
前言:

  在论坛上经常看到有人问“如何实现数据的分类汇总”,很多的人都是介绍这样或那样的控件来实现,而没有从关系数据库语言(SQL)的本身来考虑实现方法。这里,我就借一个实例来说明如何借助SQL自身强大的功能来实现数据的分类汇总。

  问题的提出:

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/sqlserver/)

  现有表A,内容如下:

       编码 仓库 数量 01 A 6 01 B 7 02 A 8 02 B 9

  现在想按编码查询出这种格式:

 编码 仓库 数量 01 A 6 01 B 7 汇总小计  13 02 A 8 02 B 9 汇总小计  17

  问:该如何实现?

  乍一看,好像很容易,用group by好像能实现?但仔细研究下去,你又会觉得group by也是无能为力,总欠缺点什么,无从下手。那么,到底该如何做呢?别急,SQL Server早就帮我们做好了,下面,跟我来。

  首先,让我们来看一段话:

  在生成包含小计和合计的报表时,ROLLUP 运算符很有用。ROLLUP 运算符生成的结果集类似于 CUBE 运算符所生成的结果集。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/sqlserver/)

  CUBE 运算符生成的结果集是多维数据集。多维数据集是事实数据的扩展,事实数据即记录个别事件的数据。扩展建立在用户打算分析的列上。这些列被称为维。多维数据集是一个结果集,其中包含了各维度的所有可能组合的交叉表格。

  CUBE 运算符在 SELECT 语句的 GROUP BY 子句中指定。该语句的选择列表应包含维度列和聚合函数表达式。GROUP BY 应指定维度列和关键字 WITH CUBE。结果集将包含维度列中各值的所有可能组合,以及与这些维度值组合相匹配的基础行中的聚合值。

  CUBE 和 ROLLUP 之间的区别在于: CUBE 生成的结果集显示了所选列中值的所有组合的聚合;ROLLUP 生成的结果集显示了所选列中值的某一层次结构的聚合。

  看完以上的这段话,悟出了什么没有?如果没有,那么……嘿嘿,你的悟性还不够哟,离“三花棸顶”还早着呢:)。接下来我们再看一段(注意哟,答案马上就揭晓了):

展开更多 50%)
分享

猜你喜欢

SQL Server数据汇总完全解析

SQLServer
SQL Server数据汇总完全解析

SQL Server数据库的数据汇总完全解析

编程语言 网络编程
SQL Server数据库的数据汇总完全解析

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

SQL Server磁带数据备份

SQLServer
SQL Server磁带数据备份

SQL Server2008导出数据之Excel详细解析

编程语言 网络编程
SQL Server2008导出数据之Excel详细解析

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

SQL Server 存储过程解析

编程语言 网络编程
SQL Server 存储过程解析

SQL Server导出导入数据方法

SQLServer
SQL Server导出导入数据方法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Windows 2000/XP在局域网内批量升级

Windows 2000/XP在局域网内批量升级

SQL Server--全文本检索的应用(一)

SQL Server--全文本检索的应用(一)
下拉加载更多内容 ↓