0% found this document useful (0 votes)
186 views3 pages

Correlated SubQuery

A correlated subquery is a subquery that references columns from the outer query. The document shows examples of creating an EMP table with sample data, then demonstrates a correlated subquery that finds employees whose salary is greater than the average salary of employees reporting to their manager.

Uploaded by

Adeel Ahmed
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
Download as txt, pdf, or txt
0% found this document useful (0 votes)
186 views3 pages

Correlated SubQuery

A correlated subquery is a subquery that references columns from the outer query. The document shows examples of creating an EMP table with sample data, then demonstrates a correlated subquery that finds employees whose salary is greater than the average salary of employees reporting to their manager.

Uploaded by

Adeel Ahmed
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1/ 3

A correlated subquery references one or more columns in the outer query

SQL> CREATE TABLE EMP (EMPNO NUMBER(4) NOT NULL,


2 ENAME VARCHAR2(10),
3 JOB VARCHAR2(9),
4 MGR NUMBER(4),
5 HIREDATE DATE,
6 SAL NUMBER(7, 2),
7 COMM NUMBER(7, 2),
8 DEPTNO NUMBER(2));

Table created.

SQL>
SQL> INSERT INTO EMP VALUES (7369, 'SMITH', 'CLERK', 7902, TO_DATE('17-DEC-
1980', 'DD-MON-YYYY'), 800, NULL, 20);

1 row created.

SQL> INSERT INTO EMP VALUES (7499, 'ALLEN', 'SALESMAN', 7698, TO_DATE('20-FEB-
1981', 'DD-MON-YYYY'), 1600, 300, 30);

1 row created.

SQL> INSERT INTO EMP VALUES (7521, 'WARD', 'SALESMAN', 7698, TO_DATE('22-FEB-
1981', 'DD-MON-YYYY'), 1250, 500, 30);

1 row created.

SQL> INSERT INTO EMP VALUES (7566, 'JONES', 'MANAGER', 7839, TO_DATE('2-APR-1981',
'DD-MON-YYYY'), 2975, NULL, 20);

1 row created.

SQL> INSERT INTO EMP VALUES (7654, 'MARTIN', 'SALESMAN', 7698,TO_DATE('28-SEP-


1981', 'DD-MON-YYYY'), 1250, 1400, 30);

1 row created.

SQL> INSERT INTO EMP VALUES (7698, 'BLAKE', 'MANAGER', 7839,TO_DATE('1-MAY-1981',


'DD-MON-YYYY'), 2850, NULL, 30);

1 row created.

SQL> INSERT INTO EMP VALUES (7782, 'CLARK', 'MANAGER', 7839,TO_DATE('9-JUN-1981',


'DD-MON-YYYY'), 2450, NULL, 10);

1 row created.

SQL> INSERT INTO EMP VALUES (7788, 'SCOTT', 'ANALYST', 7566,TO_DATE('09-DEC-1982',


'DD-MON-YYYY'), 3000, NULL, 20);

1 row created.

SQL> INSERT INTO EMP VALUES (7839, 'KING', 'PRESIDENT', NULL,TO_DATE('17-NOV-1981',


'DD-MON-YYYY'), 5000, NULL, 10);
1 row created.

SQL> INSERT INTO EMP VALUES (7844, 'TURNER', 'SALESMAN', 7698,TO_DATE('8-SEP-1981',


'DD-MON-YYYY'), 1500, 0, 30);

1 row created.

SQL> INSERT INTO EMP VALUES (7876, 'ADAMS', 'CLERK', 7788,TO_DATE('12-JAN-1983',


'DD-MON-YYYY'), 1100, NULL, 20);

1 row created.

SQL> INSERT INTO EMP VALUES (7900, 'JAMES', 'CLERK', 7698,TO_DATE('3-DEC-1981',


'DD-MON-YYYY'), 950, NULL, 30);

1 row created.

SQL> INSERT INTO EMP VALUES (7902, 'FORD', 'ANALYST', 7566,TO_DATE('3-DEC-1981',


'DD-MON-YYYY'), 3000, NULL, 20);

1 row created.

SQL> INSERT INTO EMP VALUES (7934, 'MILLER', 'CLERK', 7782,TO_DATE('23-JAN-1982',


'DD-MON-YYYY'), 1300, NULL, 10);

1 row created.

SQL>
SQL> select * from emp;

EMPNO ENAME JOB MGR HIREDATE SAL COMM


DEPTNO
---------- ---------- --------- ---------- ----------- ---------- ----------
----------
7369 SMITH CLERK 7902 1980-DEC-17 800
20
7499 ALLEN SALESMAN 7698 1981-FEB-20 1600 300
30
7521 WARD SALESMAN 7698 1981-FEB-22 1250 500
30
7566 JONES MANAGER 7839 1981-APR-02 2975
20
7654 MARTIN SALESMAN 7698 1981-SEP-28 1250 1400
30
7698 BLAKE MANAGER 7839 1981-MAY-01 2850
30
7782 CLARK MANAGER 7839 1981-JUN-09 2450
10
7788 SCOTT ANALYST 7566 1982-DEC-09 3000
20
7839 KING PRESIDENT 1981-NOV-17 5000
10
7844 TURNER SALESMAN 7698 1981-SEP-08 1500 0
30
7876 ADAMS CLERK 7788 1983-JAN-12 1100
20
7900 JAMES CLERK 7698 1981-DEC-03 950
30
7902 FORD ANALYST 7566 1981-DEC-03 3000
20
7934 MILLER CLERK 7782 1982-JAN-23 1300
10

14 rows selected.

SQL>
SQL> --Writing Correlated Subqueries
SQL>
SQL> --A correlated subquery references one or more columns in the outer query.
SQL> --The subquery is known as a correlated subquery because the subquery is
related to the outer query.
SQL>
SQL> SELECT empno, mgr,ename, sal
2 FROM emp outer
3 WHERE sal >
4 (SELECT AVG(sal)
5 FROM emp inner
6 WHERE inner.empno = outer.mgr);

EMPNO MGR ENAME SAL


---------- ---------- ---------- ----------
7788 7566 SCOTT 3000
7902 7566 FORD 3000

SQL>
SQL>
SQL> drop table emp;

Table dropped.

SQL>
SQL>

You might also like