You are on page 1of 16

SQL> cl scr

SQL> SELECT ROWNUM, Ename, Sal, Job


2 FROM Emp;
ROWNUM
---------1
2
3
4
5
6
7
8
9
10
11

ENAME
SAL JOB
---------- ---------- --------KING
5000 PRESIDENT
BLAKE
2850 MANAGER
CLARK
2450 MANAGER
JONES
2975 MANAGER
MARTIN
1250 SALESMAN
ALLEN
1600 SALESMAN
TURNER
1500 SALESMAN
JAMES
950 CLERK
WARD
1250 SALESMAN
FORD
3000 ANALYST
SMITH
800 CLERK

ROWNUM
---------12
13
14

ENAME
SAL JOB
---------- ---------- --------SCOTT
3000 ANALYST
ADAMS
1100 CLERK
MILLER
1300 CLERK

14 rows selected.
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT ROWNUM, Ename, HireDate


FROM Emp
ORDER BY HireDate
/

ROWNUM
---------11
6
9
4
2
3
7
5
1
8
10

ENAME
---------SMITH
ALLEN
WARD
JONES
BLAKE
CLARK
TURNER
MARTIN
KING
JAMES
FORD

HIREDATE
--------17-DEC-80
20-FEB-81
22-FEB-81
02-APR-81
01-MAY-81
09-JUN-81
08-SEP-81
28-SEP-81
17-NOV-81
03-DEC-81
03-DEC-81

ROWNUM
---------14
12
13

ENAME
---------MILLER
SCOTT
ADAMS

HIREDATE
--------23-JAN-82
09-DEC-82
12-JAN-83

14 rows selected.
SQL> ed
Wrote file afiedt.buf

1 SELECT ROWNUM, Ename, HireDate, Sal


2 FROM (SELECT Ename, HireDate, Sal
3
FROM Emp
4*
ORDER BY HireDate)
SQL> /
ROWNUM
---------1
2
3
4
5
6
7
8
9
10
11

ENAME
---------SMITH
ALLEN
WARD
JONES
BLAKE
CLARK
TURNER
MARTIN
KING
JAMES
FORD

HIREDATE
SAL
--------- ---------17-DEC-80
800
20-FEB-81
1600
22-FEB-81
1250
02-APR-81
2975
01-MAY-81
2850
09-JUN-81
2450
08-SEP-81
1500
28-SEP-81
1250
17-NOV-81
5000
03-DEC-81
950
03-DEC-81
3000

ROWNUM
---------12
13
14

ENAME
---------MILLER
SCOTT
ADAMS

HIREDATE
SAL
--------- ---------23-JAN-82
1300
09-DEC-82
3000
12-JAN-83
1100

14 rows selected.
SQL> ed
Wrote file afiedt.buf
1 SELECT ROWNUM, Ename, Sal, Job
2 FROM Emp
3* WHERE Deptno = &GDeptno
SQL> SET VERIFY OFF
SQL> /
Enter value for gdeptno: 10
ROWNUM
---------1
2
3

ENAME
SAL JOB
---------- ---------- --------KING
5000 PRESIDENT
CLARK
2450 MANAGER
MILLER
1300 CLERK

SQL> /
Enter value for gdeptno: 20
ROWNUM
---------1
2
3
4
5

ENAME
SAL JOB
---------- ---------- --------JONES
2975 MANAGER
FORD
3000 ANALYST
SMITH
800 CLERK
SCOTT
3000 ANALYST
ADAMS
1100 CLERK

SQL> /
Enter value for gdeptno: 30
ROWNUM ENAME
SAL JOB
---------- ---------- ---------- ---------

1
2
3
4
5
6

BLAKE
MARTIN
ALLEN
TURNER
JAMES
WARD

2850
1250
1600
1500
950
1250

MANAGER
SALESMAN
SALESMAN
SALESMAN
CLERK
SALESMAN

6 rows selected.
SQL> ed
Wrote file afiedt.buf
1 SELECT ROWNUM, Ename, Sal, Job
2 FROM Emp
3* WHERE Job = '&GiveJob'
SQL> /
Enter value for givejob: MANAGER
ROWNUM
---------1
2
3

ENAME
SAL JOB
---------- ---------- --------BLAKE
2850 MANAGER
CLARK
2450 MANAGER
JONES
2975 MANAGER

SQL> ed
Wrote file afiedt.buf
1 SELECT ROWNUM, Ename, Sal, Job
2 FROM Emp
3 WHERE Job = '&GiveJob'
4* ORDER BY Ename
SQL> /
Enter value for givejob: MANAGER
ROWNUM
---------1
2
3

ENAME
SAL JOB
---------- ---------- --------BLAKE
2850 MANAGER
CLARK
2450 MANAGER
JONES
2975 MANAGER

SQL> ed
Wrote file afiedt.buf
1 SELECT ROWNUM, Ename, Sal, Job
2 FROM Emp
3 WHERE Job = '&GiveJob'
4* ORDER BY Ename DESC
SQL> /
Enter value for givejob: MANAGER
ROWNUM
---------3
2
1

ENAME
SAL JOB
---------- ---------- --------JONES
2975 MANAGER
CLARK
2450 MANAGER
BLAKE
2850 MANAGER

SQL> cl scr
SQL> SELECT ROWNUM, Ename, Sal, HireDate
2 FROM Emp

3 WHERE ROWNUM = &GRownum;


Enter value for grownum: 1
ROWNUM ENAME
SAL HIREDATE
---------- ---------- ---------- --------1 KING
5000 17-NOV-81
SQL> /
Enter value for grownum: 2
no rows selected
SQL> /
Enter value for grownum: 7
no rows selected
SQL> ed
Wrote file afiedt.buf
1 SELECT ROWNUM, Ename, Sal, HireDate
2 FROM Emp
3* WHERE ROWNUM < &GRownum
SQL> /
Enter value for grownum: 5
ROWNUM
---------1
2
3
4

ENAME
SAL HIREDATE
---------- ---------- --------KING
5000 17-NOV-81
BLAKE
2850 01-MAY-81
CLARK
2450 09-JUN-81
JONES
2975 02-APR-81

SQL> /
Enter value for grownum: 8
ROWNUM
---------1
2
3
4
5
6
7

ENAME
SAL HIREDATE
---------- ---------- --------KING
5000 17-NOV-81
BLAKE
2850 01-MAY-81
CLARK
2450 09-JUN-81
JONES
2975 02-APR-81
MARTIN
1250 28-SEP-81
ALLEN
1600 20-FEB-81
TURNER
1500 08-SEP-81

7 rows selected.
SQL> ed
Wrote file afiedt.buf
1 SELECT ROWNUM, Ename, Sal, HireDate
2 FROM Emp
3* WHERE ROWNUM > &GRownum
SQL> /
Enter value for grownum: 6
no rows selected
SQL> cl scr

SQL>
SQL>
2
3
4

COLUMN SelectGraph FORMAT A16


SELECT
Ename,
LPAD('*' , ROWNUM, '*') SelectGraph
FROM Emp;

ENAME
---------KING
BLAKE
CLARK
JONES
MARTIN
ALLEN
TURNER
JAMES
WARD
FORD
SMITH

SELECTGRAPH
---------------*
**
***
****
*****
******
*******
********
*********
**********
***********

ENAME
---------SCOTT
ADAMS
MILLER

SELECTGRAPH
---------------************
*************
**************

14 rows selected.
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5*
SQL>

SELECT
ROWNUM SeqNo,
LPAD('*' , ROWNUM, '*') SelectGraph
FROM Emp
WHERE ROWNUM <= 5
/

SEQNO
---------1
2
3
4
5

SELECTGRAPH
---------------*
**
***
****
*****

SQL> cl scr
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5*
SQL>
ENAME

SELECT
Ename,
LPAD('*' , ROWNUM, '*') SelectGraph
FROM Emp
ORDER BY Sal
/
SELECTGRAPH

---------SMITH
JAMES
ADAMS
MARTIN
WARD
MILLER
TURNER
ALLEN
CLARK
BLAKE
JONES

---------------***********
********
*************
*****
*********
**************
*******
******
***
**
****

ENAME
---------FORD
SCOTT
KING

SELECTGRAPH
---------------**********
************
*

14 rows selected.
SQL> cl scr
SQL>
SQL>
SQL>
SQL>
2
3
4
5
6

COLUMN SelectGraph FORMAT A16


COLUMN RecGraph FORMAT A20
COLUMN SalGraph FORMAT A20
SELECT
Ename,
LPAD('*' , ROWNUM, '*' ) SelectGraph,
LPAD('*', Sal/500, '*') SalGraph,
LPAD('*', (SYSDATE-HireDate)/500, '*') RecGraph
FROM Emp;

ENAME
---------KING
BLAKE
CLARK
JONES
MARTIN
ALLEN
TURNER
JAMES
WARD
FORD
SMITH

SELECTGRAPH
---------------*
**
***
****
*****
******
*******
********
*********
**********
***********

SALGRAPH
-------------------**********
*****
****
*****
**
***
***
*
**
******
*

RECGRAPH
-------------------********************
********************
********************
********************
********************
********************
********************
********************
********************
********************
********************

ENAME
---------SCOTT
ADAMS
MILLER

SELECTGRAPH
---------------************
*************
**************

SALGRAPH
-------------------******
**
**

RECGRAPH
-------------------*******************
*******************
********************

14 rows selected.
SQL> cl scr
SQL> SELECT ROWNUM, Ename, Sal
2 FROM Emp
3 WHERE ROWNUM < 6

4 ORDER BY Sal DESC;


ROWNUM
---------1
4
2
3
5

ENAME
SAL
---------- ---------KING
5000
JONES
2975
BLAKE
2850
CLARK
2450
MARTIN
1250

SQL> ed
Wrote file afiedt.buf
1
2
3
4
5
6*
7

SELECT ROWNUM, Ename, Sal, Job


FROM (SELECT Ename, Sal, Job
FROM Emp
ORDER BY Sal DESC
)
WHERE ROWNUM < 6
/

ROWNUM
---------1
2
3
4
5

ENAME
SAL JOB
---------- ---------- --------KING
5000 PRESIDENT
FORD
3000 ANALYST
SCOTT
3000 ANALYST
JONES
2975 MANAGER
BLAKE
2850 MANAGER

SQL> ed
Wrote file afiedt.buf
1
2
3*
4

SELECT Ename, Sal, Job


FROM Emp
ORDER BY Sal DESC
/

ENAME
SAL JOB
---------- ---------- --------KING
5000 PRESIDENT
FORD
3000 ANALYST
SCOTT
3000 ANALYST
JONES
2975 MANAGER
BLAKE
2850 MANAGER
CLARK
2450 MANAGER
ALLEN
1600 SALESMAN
TURNER
1500 SALESMAN
MILLER
1300 CLERK
MARTIN
1250 SALESMAN
WARD
1250 SALESMAN
ENAME
SAL JOB
---------- ---------- --------ADAMS
1100 CLERK
JAMES
950 CLERK
SMITH
800 CLERK
14 rows selected.
SQL> ed

Wrote file afiedt.buf


1
2
3
4
5
6*
SQL>

SELECT ROWNUM, Ename, Sal, Job


FROM (SELECT Ename, Sal, Job
FROM Emp
ORDER BY Sal DESC
)
WHERE ROWNUM <= 6
/

ROWNUM
---------1
2
3
4
5
6

ENAME
SAL JOB
---------- ---------- --------KING
5000 PRESIDENT
FORD
3000 ANALYST
SCOTT
3000 ANALYST
JONES
2975 MANAGER
BLAKE
2850 MANAGER
CLARK
2450 MANAGER

6 rows selected.
SQL> cl scr
SQL>
2
3
4
5
6

SELECT LEVEL, ROWNUM, Ename, Sal


FROM Emp
WHERE ROWNUM < 6
START WITH Ename = 'KING'
CONNECT BY PRIOR Empno = MGR
ORDER BY Sal DESC;

LEVEL
ROWNUM ENAME
SAL
---------- ---------- ---------- ---------1
1 KING
5000
2
2 BLAKE
2850
3
4 ALLEN
1600
3
5 TURNER
1500
3
3 MARTIN
1250
SQL> SELECT ROWNUM, E1.*
2 FROM (SELECT ROWNUM, Ename, Sal, Deptno, Job
3
FROM Emp
4
ORDER BY Sal DESC) E1
5 WHERE ROWNUM < 6;
ROWNUM
ROWNUM ENAME
SAL
DEPTNO JOB
---------- ---------- ---------- ---------- ---------- --------1
1 KING
5000
10 PRESIDENT
2
10 FORD
3000
20 ANALYST
3
12 SCOTT
3000
20 ANALYST
4
4 JONES
2975
20 MANAGER
5
2 BLAKE
2850
30 MANAGER
SQL> ed
Wrote file afiedt.buf
1 SELECT ROWNUM, E1.*
2 FROM (SELECT Ename, Sal, Deptno, Job
3
FROM Emp
4
ORDER BY Sal DESC) E1
5* WHERE ROWNUM < 6

SQL> /
ROWNUM
---------1
2
3
4
5

ENAME
SAL
DEPTNO JOB
---------- ---------- ---------- --------KING
5000
10 PRESIDENT
FORD
3000
20 ANALYST
SCOTT
3000
20 ANALYST
JONES
2975
20 MANAGER
BLAKE
2850
30 MANAGER

SQL> ed
Wrote file afiedt.buf
1
2
3
4
5*
SQL>

SELECT ROWNUM, E1.*


FROM (SELECT Ename, Sal, Deptno, Job
FROM Emp
ORDER BY Sal DESC) E1
WHERE ROWNUM < 6
cl scr

SQL> SELECT RN, Ename, Sal


2 FROM (SELECT ROWNUM RN, Ename, Sal
3
FROM Emp)
4 WHERE RN = &GiveRn;
Enter value for givern: 1
RN ENAME
SAL
---------- ---------- ---------1 KING
5000
SQL> /
Enter value for givern: 2
RN ENAME
SAL
---------- ---------- ---------2 BLAKE
2850
SQL> /
Enter value for givern: 8
RN ENAME
SAL
---------- ---------- ---------8 JAMES
950
SQL> SELECT RN, E2.Ename, E2.Sal
2 FROM (SELECT ROWNUM RN, E1.*
3
FROM (SELECT Ename, Sal, Deptno, Job
4
FROM Emp
5
ORDER BY Sal DESC) E1) E2
6 WHERE RN = &GiveSalNum;
Enter value for givesalnum: 1
RN ENAME
SAL
---------- ---------- ---------1 KING
5000
SQL> /
Enter value for givesalnum: 2
RN ENAME

SAL

---------- ---------- ---------2 FORD


3000
SQL> /
Enter value for givesalnum: 3
RN ENAME
SAL
---------- ---------- ---------3 SCOTT
3000
SQL> SELECT Ename, Sal, E.Deptno, Dname, Grade
2 FROM Emp E, Dept D, Salgrade S
3 WHERE Sal IN (SELECT E2.Sal
4
FROM (SELECT ROWNUM RN, E1.*
5
FROM (SELECT Ename, Sal, Deptno, Job
6
FROM Emp
7
ORDER BY Sal DESC) E1) E2
8
WHERE E2.RN = &Rn)
9 AND E.Deptno = D.Deptno AND
10 E.Sal BETWEEN S.Losal AND S.HiSal;
Enter value for rn: 5
ENAME
SAL
DEPTNO DNAME
GRADE
---------- ---------- ---------- -------------- ---------BLAKE
2850
30 SALES
4
SQL> /
Enter value for rn: 2
ENAME
SAL
DEPTNO DNAME
GRADE
---------- ---------- ---------- -------------- ---------FORD
3000
20 RESEARCH
4
SCOTT
3000
20 RESEARCH
4
SQL> cl scr
SQL> SELECT RN, Ename, Sal
2 FROM (SELECT ROWNUM RN, Ename, Sal
3
FROM Emp)
4 WHERE MOD(RN, 2) = 0;
RN
---------2
4
6
8
10
12
14

ENAME
SAL
---------- ---------BLAKE
2850
JONES
2975
ALLEN
1600
JAMES
950
FORD
3000
SCOTT
3000
MILLER
1300

7 rows selected.
SQL> ed
Wrote file afiedt.buf
1 SELECT RN, Ename, Sal
2 FROM (SELECT ROWNUM RN, Ename, Sal
3
FROM Emp)
4* WHERE MOD(RN, 2) = 1

SQL> /
RN
---------1
3
5
7
9
11
13

ENAME
SAL
---------- ---------KING
5000
CLARK
2450
MARTIN
1250
TURNER
1500
WARD
1250
SMITH
800
ADAMS
1100

7 rows selected.
SQL> cl scr
SQL> SELECT RN, Ename, Sal
2 FROM (SELECT ROWNUM RN, Ename, Sal
3
FROM Emp)
4 WHERE RN BETWEEN &GineRn1 AND &GiveRn2;
Enter value for ginern1: 1
Enter value for givern2: 5
RN
---------1
2
3
4
5

ENAME
SAL
---------- ---------KING
5000
BLAKE
2850
CLARK
2450
JONES
2975
MARTIN
1250

SQL> /
Enter value for ginern1: 6
Enter value for givern2: 10
RN
---------6
7
8
9
10

ENAME
SAL
---------- ---------ALLEN
1600
TURNER
1500
JAMES
950
WARD
1250
FORD
3000

SQL> /
Enter value for ginern1: 11
Enter value for givern2: 14
RN
---------11
12
13
14

ENAME
SAL
---------- ---------SMITH
800
SCOTT
3000
ADAMS
1100
MILLER
1300

SQL> cl scr
SQL>
2
3
4

SELECT ROWNUM, Ename, Sal, HireDate


FROM Emp
GROUP BY ROWNUM
HAVING ROWNUM = &GRowNum;

Enter value for grownum: 1


SELECT ROWNUM, Ename, Sal, HireDate
*
ERROR at line 1:
ORA-00979: not a GROUP BY expression
SQL> ed
Wrote file afiedt.buf
1 SELECT ROWNUM, Ename, Sal, HireDate
2 FROM Emp
3 GROUP BY ROWNUM, Ename, Sal, HireDate
4* HAVING ROWNUM = &GRowNum
SQL> /
Enter value for grownum: 1
ROWNUM ENAME
SAL HIREDATE
---------- ---------- ---------- --------1 KING
5000 17-NOV-81
SQL> /
Enter value for grownum: 2
ROWNUM ENAME
SAL HIREDATE
---------- ---------- ---------- --------2 BLAKE
2850 01-MAY-81
SQL> /
Enter value for grownum: 3
ROWNUM ENAME
SAL HIREDATE
---------- ---------- ---------- --------3 CLARK
2450 09-JUN-81
SQL> cl scr
SQL> SELECT ROWNUM, Ename, Sal
2 FROM Emp
3 GROUP BY ROWNUM, Ename, Sal
4 HAVING ROWNUM BETWEEN &GiveRowNum1 AND &GiveRowNum2;
Enter value for giverownum1: 1
Enter value for giverownum2: 5
ROWNUM
---------1
2
3
4
5

ENAME
SAL
---------- ---------KING
5000
BLAKE
2850
CLARK
2450
JONES
2975
MARTIN
1250

SQL> SELECT Ename, HireDate, E.Deptno, Dname


2 FROM Emp E, Dept D
3 WHERE HireDate IN (SELECT E2.HireDate
4
FROM (SELECT ROWNUM RN, E1.*
5
FROM (SELECT Ename, Sal, HireDate
6
FROM Emp
7
ORDER BY HireDate) E1) E2
8
WHERE E2.RN = &RN1)

9 AND E.Deptno = D.Deptno;


Enter value for rn1: 5
ENAME
HIREDATE
DEPTNO DNAME
---------- --------- ---------- -------------BLAKE
01-MAY-81
30 SALES
SQL> SELECT Ename, HireDate, E.Deptno, Dname
2 FROM Emp E, Dept D
3 WHERE HireDate IN (SELECT E2.HireDate
4
FROM (SELECT ROWNUM RN, E1.*
5
FROM (SELECT Ename, Sal, HireDate
6
FROM Emp
7
ORDER BY HireDate) E1) E2
8
WHERE E2.RN <= &RN1)
9 AND E.Deptno = D.Deptno;
Enter value for rn1: 5
ENAME
---------BLAKE
JONES
ALLEN
WARD
SMITH

HIREDATE
DEPTNO DNAME
--------- ---------- -------------01-MAY-81
30 SALES
02-APR-81
20 RESEARCH
20-FEB-81
30 SALES
22-FEB-81
30 SALES
17-DEC-80
20 RESEARCH

SQL> cl scr
SQL> SELECT ROWID, Ename, Job
2 FROM Emp
3 /
ROWID
-----------------AAANecAAEAAAAIHAAA
AAANecAAEAAAAIHAAB
AAANecAAEAAAAIHAAC
AAANecAAEAAAAIHAAD
AAANecAAEAAAAIHAAE
AAANecAAEAAAAIHAAF
AAANecAAEAAAAIHAAG
AAANecAAEAAAAIHAAH
AAANecAAEAAAAIHAAI
AAANecAAEAAAAIHAAJ
AAANecAAEAAAAIHAAK

ENAME
---------KING
BLAKE
CLARK
JONES
MARTIN
ALLEN
TURNER
JAMES
WARD
FORD
SMITH

JOB
--------PRESIDENT
MANAGER
MANAGER
MANAGER
SALESMAN
SALESMAN
SALESMAN
CLERK
SALESMAN
ANALYST
CLERK

ROWID
-----------------AAANecAAEAAAAIHAAL
AAANecAAEAAAAIHAAM
AAANecAAEAAAAIHAAN

ENAME
---------SCOTT
ADAMS
MILLER

JOB
--------ANALYST
CLERK
CLERK

14 rows selected.
SQL> SELECT ROWID, Ename, Job
2 FROM Emp
3 WHERE ROWID = 'AAANecAAEAAAAIHAAG';
ROWID
ENAME
JOB
------------------ ---------- ---------

AAANecAAEAAAAIHAAG TURNER

SALESMAN

SQL> e
SP2-0042: unknown command "e" - rest of line ignored.
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT ROWID, Ename, Job


FROM Emp
WHERE ROWID < 'AAANecAAEAAAAIHAAG'
/

ROWID
-----------------AAANecAAEAAAAIHAAA
AAANecAAEAAAAIHAAB
AAANecAAEAAAAIHAAC
AAANecAAEAAAAIHAAD
AAANecAAEAAAAIHAAE
AAANecAAEAAAAIHAAF

ENAME
---------KING
BLAKE
CLARK
JONES
MARTIN
ALLEN

JOB
--------PRESIDENT
MANAGER
MANAGER
MANAGER
SALESMAN
SALESMAN

6 rows selected.
SQL> cl scr
SQL>
2
3
4

SELECT B.Sal, SUM(A.Sal) "Cum Sal"


FROM Emp A, Emp B
WHERE A.ROWID < = B.ROWID
GROUP BY B.ROWID, B.Sal;

SAL
Cum Sal
---------- ---------5000
5000
2850
7850
2450
10300
2975
13275
1250
14525
1600
16125
1500
17625
950
18575
1250
19825
3000
22825
800
23625
SAL
Cum Sal
---------- ---------3000
26625
1100
27725
1300
29025
14 rows selected.
SQL>
2
3
4
5

SELECT B.Ename, B.Sal, Sum(A.Sal) "Cum Sal"


FROM Emp A, Emp B
WHERE A.ROWID < = B.ROWID
GROUP BY B.ROWID, B.Sal, B.Ename
ORDER BY "Cum Sal";

ENAME
SAL
Cum Sal
---------- ---------- ----------

KING
BLAKE
CLARK
JONES
MARTIN
ALLEN
TURNER
JAMES
WARD
FORD
SMITH

5000
2850
2450
2975
1250
1600
1500
950
1250
3000
800

5000
7850
10300
13275
14525
16125
17625
18575
19825
22825
23625

ENAME
SAL
Cum Sal
---------- ---------- ---------SCOTT
3000
26625
ADAMS
1100
27725
MILLER
1300
29025
14 rows selected.
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5*
SQL>

SELECT B.Ename, B.Sal, AVG(A.Sal) "Cum Sal"


FROM Emp A, Emp B
WHERE A.ROWID < = B.ROWID
GROUP BY B.ROWID, B.Sal, B.Ename
ORDER BY "Cum Sal"
/

ENAME
SAL
Cum Sal
---------- ---------- ---------MILLER
1300 2073.21429
ADAMS
1100 2132.69231
SMITH
800 2147.72727
WARD
1250 2202.77778
SCOTT
3000
2218.75
FORD
3000
2282.5
JAMES
950 2321.875
TURNER
1500 2517.85714
ALLEN
1600
2687.5
MARTIN
1250
2905
JONES
2975
3318.75
ENAME
SAL
Cum Sal
---------- ---------- ---------CLARK
2450 3433.33333
BLAKE
2850
3925
KING
5000
5000
14 rows selected.
SQL> ed
Wrote file afiedt.buf
1
2
3
4*
5

SELECT B.Ename, B.Sal, AVG(A.Sal) "Cum Sal"


FROM Emp A, Emp B
WHERE A.ROWID < = B.ROWID
GROUP BY B.ROWID, B.Sal, B.Ename
/

ENAME
SAL
Cum Sal
---------- ---------- ---------KING
5000
5000
BLAKE
2850
3925
CLARK
2450 3433.33333
JONES
2975
3318.75
MARTIN
1250
2905
ALLEN
1600
2687.5
TURNER
1500 2517.85714
JAMES
950 2321.875
WARD
1250 2202.77778
FORD
3000
2282.5
SMITH
800 2147.72727
ENAME
SAL
Cum Sal
---------- ---------- ---------SCOTT
3000
2218.75
ADAMS
1100 2132.69231
MILLER
1300 2073.21429
14 rows selected.
SQL> SPOOL OFF

You might also like