0

0

SqlServer中Cube RollUp 的用法

php中文网

php中文网

发布时间:2016-06-07 15:44:41

|

1185人浏览过

|

来源于php中文网

原创

cube 、rollup可以对查询的数据进行汇总,在数据统计中经常用到,尤其是做报表时,用在select语句中,下面就对两种统计方式进行对比: 先做准备工作: View Code -- --插入随机数据 DECLARE @i INT DECLARE @rand MONEY DECLARE @date DATETIME DECLARE @ind

cube 、rollup可以对查询的数据进行汇总,在数据统计中经常用到,尤其是做报表时,用在select语句中,下面就对两种统计方式进行对比:

先做准备工作:

SqlServer中Cube RollUp 的用法SqlServer中Cube RollUp 的用法View Code

----插入随机数据
DECLARE @i INT 
DECLARE @rand MONEY
DECLARE @date DATETIME
DECLARE @index INT 
DECLARE @DateBase INT 
SET @date = '2012-10-23'
SET @i = 1
WHILE ( @i < 18 ) 
    BEGIN
        SET @rand = RAND() * 20
        SET @index = CAST(RAND() * 3 AS INT)
        SET @DateBase = CAST(RAND() * 10 AS INT)

        INSERT  INTO t_test
                ( id ,
                  productName ,
                  price ,
                  num ,
                  amount ,
                  operatedate  
                
                )
        VALUES  ( @i ,
                  'product' + CAST (@index AS VARCHAR(10)) ,
                  @rand ,
                  100 ,
                  @rand * 100 ,
                  @date + @DateBase          
                )
        SET @i = @i + 1
    END

SELECT * FROM t_test


分别用两种方式统计:


按 Ctrl+C 复制代码
View Code 

SELECT  
        CASE WHEN GROUPING(operatedate) = 1 THEN '小计'
             ELSE CONVERT(VARCHAR(10), operatedate, 120)
        END AS 日期 ,
        CASE WHEN GROUPING(productName) = 1 THEN '小计'
             ELSE productName
        END AS 产品名称 ,
        SUM(amount) / SUM(num) AS 平均价格 ,
        SUM(num) AS 数量 ,
        SUM(amount) AS 金额
FROM    t_test
GROUP BY  operatedate,productName
WITH ROLLUP  /*WITH Cube*/
按 Ctrl+C 复制代码

 

SqlServer中Cube RollUp 的用法          SqlServer中Cube RollUp 的用法

CUBE 会对所有的分组字段进行统计,如上例,先对日期求小计,也就是统计每天的产品总金额,然后统计每个产品的总金额,最后给出总的合计。

人声去除
人声去除

用强大的AI算法将声音从音乐中分离出来

下载

ROLLUP 按照分组顺序,先对第一个字段operatedate分组,在组内进行统计,最后给出合计。

区别就是: ROLLUP 不会去统计group by 后面的第一个字段的小计

Grouping(字段名) 用来区分当前行是不是小计产生的行,  Grouping(字段名)=1 说明是统计行,Grouping(字段名)=0 说明是表中行,可以用在case,where 后面

相关专题

更多
php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

150

2025.12.31

php网站源码教程大全
php网站源码教程大全

本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

88

2025.12.31

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

90

2025.12.31

不受国内限制的浏览器大全
不受国内限制的浏览器大全

想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

61

2025.12.31

出现404解决方法大全
出现404解决方法大全

本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

493

2025.12.31

html5怎么播放视频
html5怎么播放视频

想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

16

2025.12.31

关闭win10系统自动更新教程大全
关闭win10系统自动更新教程大全

本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

12

2025.12.31

阻止电脑自动安装软件教程
阻止电脑自动安装软件教程

本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

5

2025.12.31

html5怎么使用
html5怎么使用

想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

2

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Node.js 教程
Node.js 教程

共57课时 | 7.8万人学习

CSS3 教程
CSS3 教程

共18课时 | 4.2万人学习

Git 教程
Git 教程

共21课时 | 2.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号