sql - How to work with Table joins and Inline View -
can me understand sql query; don't understand concept behind it:
select t2.*, ( select sum (salary) ( select tb1.*, rownum rnk ( select * employees e order e.department_id, e.employee_id ) tb1 ) tb2 tb2.department_id = t2.department_id , tb2.rnk <= t2.rnk ) dept_salary ( select t1.*, rownum rnk ( select e.employee_id, e.first_name, e.department_id, e.salary employees e order e.department_id, e.employee_id ) t1 ) t2
there different type of subquery.
scalar sub query : query totally independent main query.
select empno, (select count(*) emp) total_emp emp
here subquery totally independent of main query.
corelated sub query: sub query reffers main query.
select empno, (select deptname dept d e.deptno = d.deptno) deptname emp e
inline view :a sub query used table or view in sql
select * (select empno, deptname emp e, dept d e.deptno = d.deptno) sal > 100
from query:
select t2.*, ( select sum (salary) -- start corelated sub query ( select tb1.*, rownum rnk ( select * -- start scalar sub query employees e order e.department_id, e.employee_id -- end scalar sub query ) tb1 ) tb2 tb2.department_id = t2.department_id , tb2.rnk <= t2.rnk -- end corelated sub query ) dept_salary ( select -- start inline view t1.*, rownum rnk ( select e.employee_id, e.first_name, e.department_id, e.salary employees e order e.department_id, e.employee_id ) t1 ) t2 -- end inline view nb:now can find out sub query within sub query , inline view within inline view in question.
Comments
Post a Comment