group by with cube
sqlserver group by with cube
CUBE运算符生成的结果集是多维数据集,多维数据集是事实数据的扩展,事实数据即记录个别时间的数据,扩展建立在用户准备分析的列上,这些列被称为维,多维数据集是一个结果集,其中包含各纬度所有可能的交叉表格.
CUBE运算符是在Select语句的group by子句中指定的,group by应指定维度列和关键字with cube,结果集将包括维度列中各值的所有可能组合.
示例1.
Sql语句如下:select * from student
select sex,sclass,sum(score) as 合计from studentgroup by sex,sclass with cube
select sex,sclass,sum(score) as 合计from studentgroup by sclass,sex with cube
Sql查询时这样运行:
查询到性别的第一个性别为男,则先查询男生,然后分班级
查询完成之后,对性别为Sex为男的数据进行合计
查询性别为女的数据,查询完成之后同样也进行合计
不分性别、班级进行合计汇总
以上均是以性别为组来分类,因为至此时关于性别的所有汇总都已经完成
按照sclass进行分组汇总.
注意:
分类依据并不是根据select 中的顺序,而是根据group by中的顺序.
尽量按照使select和group by中的字段顺序一致,这样在显示起来看着更舒服,具体情况具体分析.
对于上述查询的结果,我们可以看出,数据中存在空置问题,绑定到GridView后显示如下:
此中效果并没有达到能够满足实际项目中的需要,所以,我们对Sql语句应进行改进.
使用Grouping区分空值.
如何区分使用CUBE之后产生的空值和实际查询中得到的空值.这个问题可以用grouping函数来解决.如果列中的值来来自查询数据,则grouping返回0,如果列中的值是cube产生的空值,则返回1
示例2.
Sql如下:select case when(grouping(sex)=1) then '小记' else sexend as 性别,case when(grouping(sclass)=1) then '小记' else sclassend as 班级,sum(score)from studentgroup by sex,sclass with cube
CUBE可以生成n维的多维数据集,即具有任意维目的多维数据集,只有一个维度的多维数据集可用于生成合计.
示例3:
SQL:select case when(grouping(sex)=1) then '合计' else sex end as 性别,sum(score) as 合计from studentgroup by sex with cube
group by with cube相关推荐
- sqlite查询乘以某列如果是null就换成_大数据之Hive group by with cube/rollup分组查询...
group by sql 查询时,我们常将聚合函数和group by 结合起来对某一个或多个字段进行分组查询,例如: select addcode,count(distinct sbtid)uv fr ...
- group by rollup | cube 学习
1.如果是ROLLUP(A, B, C)的话,首先会对(A.B.C)进行GROUP BY,然后对(A.B)进行GROUP BY,然后是(A)进行GROUP BY,最后对全表进行GROUP BY操作. ...
- GROUP BY你都不会!ROLLUP,CUBE,GROUPPING详解
Group By Group By 谁不会啊?这不是最简单的吗?越是简单的东西,我们越会忽略掉他,因为我们不愿意再去深入了解它. 1 小时 SQL 极速入门(一) 1 小时 SQL 极速入门(二) 1 ...
- SQL语句where,Group By,having order by 的详细使用方法
为什么80%的码农都做不了架构师?>>> 1. Group By 语句简介: Group By语句从英文的字面意义上理解就是"根据(by)一定的规则进行分组(Grou ...
- [转]详解Oracle高级分组函数(ROLLUP, CUBE, GROUPING SETS)
原文地址:http://blog.csdn.net/u014558001/article/details/42387929 本文主要讲解 ROLLUP, CUBE, GROUPING SETS的主要用 ...
- Hive分析窗口函数(五) GROUPING SETS,GROUPING__ID,CUBE,ROLLUP
GROUPING SETS 该关键字可以实现同一数据集的多重group by操作.事实上GROUPING SETS是多个GROUP BY进行UNION ALL操作的简单表达,它仅仅使用一个stage完 ...
- SQL汇总统计与CUBE概念
SQL汇总统计(Group by, ROLLUP, CUBE)与CUBE概念 第一层:[GROUP BY]将一个"数据集"划分成若干个"小区域",然后针对若干个 ...
- SQL SERVER中ROLLUP的用法
cube操作符 要使用cube,首先要了解group by 其实cube和rollup区别不太大,只是在基于group by 子句创建和汇总分组的可能的组合上有一定差别, cube将返回的更多的可能组 ...
- 多维分析中的 UV 与 PV
1. 概念 1.1 UV 与 PV 对于互联网产品来说,UV 与 PV 是两个非常常见的指标,并且通常都是分析的最基础指标.UV 一般来讲,是指使用产品(或产品某个功能)的独立用户数.PV 则来源于网 ...
最新文章
- 【Qt】Qt Creator中文输入设置
- Nature调查 l 中国博士生们的科研围城
- Oauth2认证以及新浪微博开放平台应用
- Spring注入日期到bean属性-CustomDateEditor
- 斩获2019 Thales AIChallenge4Health第一,腾讯优图医疗AI再获突破
- bzoj1231 [Usaco2008 Nov]mixup2 混乱的奶牛——状压DP
- 主流的数据可视化工具介绍
- Python 读取MODIS叶绿素-a浓度.nc文件
- 不同机构的自动驾驶专利分析报告解读
- Unity:骨骼动画
- html directive 内容传递,directive的传值问题(全面解析directive的传值问题)微信分享实例...
- 【Python】import class/import module
- 3D游戏角色动画——Elaina(全流程人物建模)
- 复习Web前端开发(一)
- python制作查询网页_Python制作简单的网页爬虫
- vimPlus插件安装失败解决
- C语言:int型数据向char型数据的强制类型转换原理
- 《On Java 8》- 面向对象之代码复用(组合、继承、委托)
- Bootstrap系列之警告框(Alert)
- 5G网络切片技术增强研究
热门文章
- Widows下TortoiseGit登录密码错误
- eclipse-阶段四-Server Tomcat v8.5 Server at localhost failed to start.
- 《中国人工智能学会通讯》——11.10 点云局部特征描述子基准评估体系
- Redis 网络编程
- LeetCode #1349. 参加考试的最大学生数 - 学到了:压缩状态动态规划、位运算、reduce()、str().count()
- php validator classes
- android限制第三方应用安装软件,如何从Android中的未知来源安装应用程序 | MOS86...
- php7 opcode,php7最小化安装 vld扩展安装并查看php代码的opcode ast测试
- qt调试失败问题跟踪
- 查询服务器系统类型有哪些,查看服务器的操作系统类型