Compute sum on salary : SUM « Aggregate Functions « Oracle PL / SQL






Compute sum on salary

  
SQL>
SQL> create table emp
  2  ( empno      NUMBER(4)    constraint E_PK primary key
  3  , ename      VARCHAR2(8)
  4  , init       VARCHAR2(5)
  5  , job        VARCHAR2(8)
  6  , mgr        NUMBER(4)
  7  , bdate      DATE
  8  , sal        NUMBER(6,2)
  9  , comm       NUMBER(6,2)
 10  , deptno     NUMBER(2)    default 10
 11  ) ;

Table created.

SQL> insert into emp values(1,'Tom','N',   'TRAINER', 13,date '1965-12-17',  800 , NULL,  20);

1 row created.

SQL> insert into emp values(2,'Jack','JAM', 'Tester',6,date '1961-02-20',  1600, 300,   30);

1 row created.

SQL> insert into emp values(3,'Wil','TF' ,  'Tester',6,date '1962-02-22',  1250, 500,   30);

1 row created.

SQL> insert into emp values(4,'Jane','JM',  'Designer', 9,date '1967-04-02',  2975, NULL,  20);

1 row created.

SQL> insert into emp values(5,'Mary','P',  'Tester',6,date '1956-09-28',  1250, 1400,  30);

1 row created.

SQL> insert into emp values(6,'Black','R',   'Designer', 9,date '1963-11-01',  2850, NULL,  30);

1 row created.

SQL> insert into emp values(7,'Chris','AB',  'Designer', 9,date '1965-06-09',  2450, NULL,  10);

1 row created.

SQL> insert into emp values(8,'Smart','SCJ', 'TRAINER', 4,date '1959-11-26',  3000, NULL,  20);

1 row created.

SQL> insert into emp values(9,'Peter','CC',   'Designer',NULL,date '1952-11-17',  5000, NULL,  10);

1 row created.

SQL> insert into emp values(10,'Take','JJ', 'Tester',6,date '1968-09-28',  1500, 0,     30);

1 row created.

SQL> insert into emp values(11,'Ana','AA',  'TRAINER', 8,date '1966-12-30',  1100, NULL,  20);

1 row created.

SQL> insert into emp values(12,'Jane','R',   'Manager',   6,date '1969-12-03',  800 , NULL,  30);

1 row created.

SQL> insert into emp values(13,'Fake','MG',   'TRAINER', 4,date '1959-02-13',  3000, NULL,  20);

1 row created.

SQL> insert into emp values(14,'Mike','TJA','Manager',   7,date '1962-01-23',  1300, NULL,  10);

1 row created.

SQL>
SQL> set     pause off
SQL> break   on deptno skip page -
>         on job
SQL>
SQL> compute sum label total of sal on deptno
SQL> compute count number    of comm on deptno
SQL>
SQL> select  deptno, job, empno, ename, sal, comm
  2  from    emp
  3  order   by deptno, job;

DEPTNO JOB       EMPNO ENAME       SAL   COMM
------ -------- ------ -------- ------ ------
    10 Designer      7 Chris      2450  [N/A]
                     9 Peter      5000  [N/A]
       Manager      14 Mike       1300  [N/A]
****** ********                 ------ ------
count                                       0
number                                      3
total                             8750

DEPTNO JOB       EMPNO ENAME       SAL   COMM
------ -------- ------ -------- ------ ------
    20 Designer      4 Jane       2975  [N/A]
       TRAINER       8 Smart      3000  [N/A]
                    11 Ana        1100  [N/A]
                    13 Fake       3000  [N/A]
                     1 Tom         800  [N/A]
****** ********                 ------ ------
count                                       0
number                                      5
total                            10875

DEPTNO JOB       EMPNO ENAME       SAL   COMM
------ -------- ------ -------- ------ ------
    30 Designer      6 Black      2850  [N/A]
       Manager      12 Jane        800  [N/A]
       Tester       10 Take       1500      0
                     2 Jack       1600    300
                     3 Wil        1250    500
                     5 Mary       1250   1400
****** ********                 ------ ------
count                                       4
number                                      6
total                             9250

14 rows selected.

SQL>
SQL> compute
COMPUTE sum LABEL 'sum' OF bytes ON pool
COMPUTE sum LABEL 'total' OF sal ON deptno
COMPUTE count LABEL 'count' number LABEL 'number' OF comm ON deptno
SQL> clear   computes
computes cleared
SQL> clear   breaks
breaks cleared
SQL>
SQL>
SQL>
SQL> drop table emp;

Table dropped.

SQL>
SQL>

   
    
  








Related examples in the same category

1.SUM: total for all NOT NULL values, accepts only numeric datatype values
2.Syntax: SUM([DISTINCT]|[ALL] )
3.GROUP BY function would produce inventory totals distributed across different vendors
4.SUM function and NULLs
5.Using the SUM function with GROUP BY Clause
6.sum with column calculation
7.Add an "OTHER" and "TOTAL" column to the report:
8.Sum column for a certain time period
9.Sum salary group by department number
10.Sum salary over
11.Sum() function and having clause
12.Doing calculation in sum() function
13.Wrap case when into sum() function