COMPUTE应该是在结果集后加上一个统计行,sql server中好像可以用rollup和cube 来代替了,oracle中也有rollup和cube 的用法的;
例子:
SQL> select decode(grouping(userid),1,'总合',userid) userid,
2 sum(num1),sum(num2) from test1 t
3 group by rollup(userid);
USERID SUM(NUM1) SUM(NUM2)
---------- ---------- ----------
user00112 32
user00231 13
user00323 32
user00423 43
总合 89 120
当然你也可以这样写:
SQL> select decode(grouping(userid),1,'总合',userid) userid,
2 sum(num1),sum(num2) from test1 t
3 group by userid,rollup(userid);
不过结果跟上面的有点不一样的,而且在oracle中rollup和cube 的用法比sql server要更灵活些,
也可以参看下面的例子:
http://community.csdn.net/Expert ... 44.xml?temp=.458523
|