|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。数据|语句
现有表Test,内容以下:IDCatalogNum1A31B52A82B2如今想按ID查询出这类了局:--------------------1A31B5汇总小计:82A82B2汇总小计:10问:该怎样完成?
在天生包括小计和算计的报表时,ROLLUP运算符很有效。ROLLUP运算符天生的了局集相似于CUBE运算符所天生的了局集。========================CUBE运算符天生的了局集是多维数据集。多维数据集是现实数据的扩大,现实数据即纪录一般事务的数据。扩大创建在用户盘算剖析的列上。这些列被称为维。多维数据集是一个了局集,个中包括了各维度的一切大概组合的交织表格。CUBE运算符在SELECT语句的GROUPBY子句中指定。该语句的选择列表应包括维度列和聚合函数表达式。GROUPBY应指定维度列和关头字WITHCUBE。了局集将包括维度列中各值的一切大概组合,和与这些维度值组合相婚配的基本行中的聚合值。=========================CUBE和ROLLUP之间的区分在于:CUBE天生的了局集显现了所选列中值的一切组合的聚合。ROLLUP天生的了局集显现了所选列中值的某一条理布局的聚合。
TheROLLUPoperatorisusefulingeneratingreportsthatcontainsubtotalsandtotals.TheROLLUPoperatorgeneratesaresultsetthatissimilartotheresultsetsgeneratedbytheCUBEoperator.
ThedifferencesbetweenCUBEandROLLUPare:
CUBEgeneratesaresultsetshowingaggregatesforallcombinationsofvaluesintheselectedcolumns.ROLLUPgeneratesaresultsetshowingaggregatesforahierarchyofvaluesintheselectedcolumns.
最初查询语句以下:
SELECTCASEWHEN(GROUPING(ID)=1)THENALLELSEISNULL(ID,UNKNOWN)ENDASID,CASEWHEN(GROUPING(Catalog)=1)THENALLELSEISNULL(Catalog,UNKNOWN)ENDASCatalog,SUM(Num)ASNumFROMTestGROUPBYID,CatalogWITHROLLUP
支持大型的数据库。可以处理拥有上千万条记录的大型数据库。 |
|