SELECT
field1,
field2,
sum(field3+field4) as a,
sum(field5+field6) as b
FROM table这句SQL会得到两条记录,r如下:
field1 field2 a b
AA BB 12 22
CC DD 13 23
现在我想再得到一条记录
DD DD 25 45就是把上两条记录相加谢谢
field1,
field2,
sum(field3+field4) as a,
sum(field5+field6) as b
FROM table这句SQL会得到两条记录,r如下:
field1 field2 a b
AA BB 12 22
CC DD 13 23
现在我想再得到一条记录
DD DD 25 45就是把上两条记录相加谢谢
--------- ---------- --------- ----------
CLERK SMITH 800.00 200
SALESMAN ALLEN 1600.00 300
SALESMAN WARD 1250.00 100
MANAGER JONES 2975.00 500
SALESMAN MARTIN 1250.00 200
MANAGER BLAKE 2850.00 100
MANAGER CLARK 2450.00 200
ANALYST SCOTT 3000.00 100
PRESIDENT KING 5000.00 100
SALESMAN TURNER 1500.00 200
CLERK ADAMS 1100.00 300
CLERK JAMES 950.00 300
ANALYST FORD 3000.00 300
CLERK MILLER 1300.00 30014 rows selectedSQL>
SQL> SELECT decode(grouping_id(job, ename), 0, ename, 1, job , '合计') job,
2 decode(grouping_id(job, ename), 0, job, 1, '小计', '合计') ename,
3 SUM(sal + bonus) earn
4 FROM emp t
5 GROUP BY ROLLUP(job, ename)
6 /JOB ENAME EARN
---------- --------- ----------
ADAMS CLERK 1400
JAMES CLERK 1250
SMITH CLERK 1000
MILLER CLERK 1600
CLERK 小计 5250
FORD ANALYST 3300
SCOTT ANALYST 3100
ANALYST 小计 6400
BLAKE MANAGER 2950
CLARK MANAGER 2650
JONES MANAGER 3475
MANAGER 小计 9075
WARD SALESMAN 1350
ALLEN SALESMAN 1900
MARTIN SALESMAN 1450
TURNER SALESMAN 1700
SALESMAN 小计 6400
KING PRESIDENT 5100
PRESIDENT 小计 5100
合计 合计 3222520 rows selected下面去掉小计:SQL>
SQL> SELECT decode(grouping_id(job, ename), 0, ename, 1, job , '合计') job,
2 decode(grouping_id(job, ename), 0, job, 1, '小计', '合计') ename,
3 SUM(sal + bonus) earn
4 FROM emp t
5 GROUP BY ROLLUP(job, ename)
6 HAVING GROUPING_id(job, ename) IN (0, 3)
7 /JOB ENAME EARN
---------- --------- ----------
ADAMS CLERK 1400
JAMES CLERK 1250
SMITH CLERK 1000
MILLER CLERK 1600
FORD ANALYST 3300
SCOTT ANALYST 3100
BLAKE MANAGER 2950
CLARK MANAGER 2650
JONES MANAGER 3475
WARD SALESMAN 1350
ALLEN SALESMAN 1900
MARTIN SALESMAN 1450
TURNER SALESMAN 1700
KING PRESIDENT 5100
合计 合计 3222515 rows selected