实现数据分类汇总的SQL语句

实现数据分类汇总的SQL语句,第1张

实现数据分类汇总的SQL语句,第2张

现有的表测试有以下内容:ID目录Num 1 A 3 1 B 52 A 8 2 B 2现在想通过ID找出这个结果:-1a31b5汇总小计:82 A 8 2 B 2汇总小计:10问:如何实现?

ROLLUP运算符在生成包含小计和总计的报表时非常有用。ROLLUP运算符生成的结果集类似于CUBE运算符生成的结果集。= = = = = = = = = = = = = = = = = = cube运算符生成的结果集是一个多维数据集。多维数据集是事实数据的扩展,即记录单个事件的数据。扩展构建在用户想要分析的列上。这些列称为维度。多维数据集是一个结果集,它包含所有可能的维度组合的交叉表。多维数据集运算符是在SELECT语句的GROUP BY子句中指定的。此语句的选择列表应包含维度列和聚合函数表达式。组应使用多维数据集指定维度列和关键字。结果将包含维度列中值的所有可能组合,以及匹配这些维度值组合的基础行中的聚合值。= = = = = = = = = = = = = = = = CUBE和ROLLUP的区别在于,CUBE生成的结果集显示所选列中所有值组合的聚合。ROLLUP生成的结果集显示所选列中值的分层聚合。

ROLLUP运算符在生成包含小计和总计的报表时非常有用。ROLLUP运算符生成的结果集类似于CUBE运算符生成的结果集。

CUBE和ROLLUP的区别在于:
CUBE生成一个结果集,显示所选列中所有值组合的聚合。ROLLUP生成一个结果集,显示所选列中值的聚合层次结构。
最后一条查询语句如下:

SELECT CASE WHEN(GROUPING(ID)= 1)THEN @ # ALL @ # ELSE is null(ID,@#UNKNOWN@#) END AS ID,CASE WHEN(GROUPING(Catalog)= 1)THEN @ # ALL @ # ELSE is null(Catalog,@#UNKNOWN@#) END AS Catalog,SUM(Num) AS Num FROM Test GROUP BY ID,Catalog WITH ROLLUP

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 实现数据分类汇总的SQL语句

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情