Skip to content

Commit 38ed69d

Browse files
Update SQL_Class_6.txt
1 parent a114f0a commit 38ed69d

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

SQL_Class_6.txt

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,3 +159,47 @@ with recursive generate_numbers as
159159
)
160160

161161
select * from generate_numbers;
162+
163+
164+
create table emp_mgr
165+
(
166+
id int,
167+
name varchar(50),
168+
manager_id int,
169+
designation varchar(50),
170+
primary key (id)
171+
);
172+
173+
174+
insert into emp_mgr values(1,'Shripath',null,'CEO');
175+
insert into emp_mgr values(2,'Satya',5,'SDE');
176+
insert into emp_mgr values(3,'Jia',5,'DA');
177+
insert into emp_mgr values(4,'David',5,'DS');
178+
insert into emp_mgr values(5,'Michael',7,'Manager');
179+
insert into emp_mgr values(6,'Arvind',7,'Architect');
180+
insert into emp_mgr values(7,'Asha',1,'CTO');
181+
insert into emp_mgr values(8,'Maryam',1,'Manager');
182+
183+
184+
select * from emp_mgr;
185+
186+
--- for our CTO 'Asha', present her org chart
187+
188+
with recursive emp_hir as
189+
(
190+
select id, name, manager_id, designation from emp_mgr where name='Asha'
191+
UNION
192+
select em.id, em.name, em.manager_id, em.designation from emp_hir eh inner join emp_mgr em on eh.id = em.manager_id
193+
)
194+
195+
select * from emp_hir;
196+
197+
--- Print level of employees as well
198+
with recursive emp_hir as
199+
(
200+
select id, name, manager_id, designation, 1 as lvl from emp_mgr where name='Asha'
201+
UNION
202+
select em.id, em.name, em.manager_id, em.designation, eh.lvl + 1 as lvl from emp_hir eh inner join emp_mgr em on eh.id = em.manager_id
203+
)
204+
205+
select * from emp_hir;

0 commit comments

Comments
 (0)