Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
39
Task/Top-rank-per-group/SQL/top-rank-per-group-1.sql
Normal file
39
Task/Top-rank-per-group/SQL/top-rank-per-group-1.sql
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
create table EMP
|
||||
(
|
||||
EMP_ID varchar2(6 char),
|
||||
EMP_NAMEvarchar2(20 char),
|
||||
DEPT_ID varchar2(4 char),
|
||||
SALARY number(10,2)
|
||||
);
|
||||
|
||||
insert into EMP (EMP_ID, EMP_NAME, DEPT_ID, SALARY)
|
||||
values ('E21437','John Rappl','D050',47000);
|
||||
insert into EMP (EMP_ID, EMP_NAME, DEPT_ID, SALARY)
|
||||
values ('E10297','Tyler Bennett','D101',32000);
|
||||
insert into EMP (EMP_ID, EMP_NAME, DEPT_ID, SALARY)
|
||||
values ('E00127','George Woltman','D101',53500);
|
||||
insert into EMP (EMP_ID, EMP_NAME, DEPT_ID, SALARY)
|
||||
values ('E63535','Adam Smith','D202',18000);
|
||||
insert into EMP (EMP_ID, EMP_NAME, DEPT_ID, SALARY)
|
||||
values ('E39876','Claire Buckman','D202',27800);
|
||||
insert into EMP (EMP_ID, EMP_NAME, DEPT_ID, SALARY)
|
||||
values ('E04242','David McClellan','D101',41500);
|
||||
insert into EMP (EMP_ID, EMP_NAME, DEPT_ID, SALARY)
|
||||
values ('E41298','Nathan Adams','D050',21900);
|
||||
insert into EMP (EMP_ID, EMP_NAME, DEPT_ID, SALARY)
|
||||
values ('E43128','Richard Potter','D101',15900);
|
||||
insert into EMP (EMP_ID, EMP_NAME, DEPT_ID, SALARY)
|
||||
values ('E27002','David Motsinger','D202',19250);
|
||||
insert into EMP (EMP_ID, EMP_NAME, DEPT_ID, SALARY)
|
||||
values ('E03033','Tim Sampair','D101',27000);
|
||||
insert into EMP (EMP_ID, EMP_NAME, DEPT_ID, SALARY)
|
||||
values ('E10001','Kim Arlich','D190',57000);
|
||||
insert into EMP (EMP_ID, EMP_NAME, DEPT_ID, SALARY)
|
||||
values ('E16398','Timothy Grove','D190',29900);
|
||||
insert into EMP (EMP_ID, EMP_NAME, DEPT_ID, SALARY)
|
||||
values ('E01234','Rich Holcomb','D202',49500);
|
||||
insert into EMP (EMP_ID, EMP_NAME, DEPT_ID, SALARY)
|
||||
values ('E16399','Timothy Grave','D190',29900);
|
||||
insert into EMP (EMP_ID, EMP_NAME, DEPT_ID, SALARY)
|
||||
values ('E16400','Timothy Grive','D190',29900);
|
||||
COMMIT;
|
||||
94
Task/Top-rank-per-group/SQL/top-rank-per-group-2.sql
Normal file
94
Task/Top-rank-per-group/SQL/top-rank-per-group-2.sql
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
select case LINE
|
||||
when 10 then
|
||||
'Tot.' || LPAD(POPULATION, 2) || ' Employees in ' || TIE_COUNT ||
|
||||
' deps.Avg salary:' || TO_CHAR(SALARY, '99990.99')
|
||||
when 30 then
|
||||
'-'
|
||||
when 50 then
|
||||
'Department: ' || DEPT_ID || ', pop: ' || POPULATION ||
|
||||
'. Avg Salary: ' || TO_CHAR(SALARY, '99990.99')
|
||||
when 70 then
|
||||
LPAD('Employee ID', 14) || LPAD('Employee name', 20) ||
|
||||
LPAD('Salary', 9) || 'Rank'
|
||||
when 90 then
|
||||
LPAD('+', 14, '-') || LPAD('+', 20, '-') || LPAD('+', 9, '-') ||
|
||||
LPAD('+', 4, '-')
|
||||
else
|
||||
LPAD(' ', 8) || LPAD(EMP_ID, 6) || LPAD(EMP_NAME, 20) ||
|
||||
TO_CHAR(SALARY, '99990.99') || LPAD(case when TIE_COUNT = 1 then ' ' else 'T' end || RANK, 4)
|
||||
end "Top rank per group"
|
||||
from (select 10 LINE
|
||||
,null EMP_ID
|
||||
,null EMP_NAME
|
||||
,' ' DEPT_ID
|
||||
,avg(SALARY) SALARY
|
||||
,0 RANK
|
||||
,count(distinct DEPT_ID) TIE_COUNT
|
||||
,count(*) POPULATION
|
||||
from EMP
|
||||
union all
|
||||
select 30 LINE
|
||||
,null EMP_ID
|
||||
,null EMP_NAME
|
||||
,DEPT_ID
|
||||
,0 SALARY
|
||||
,0 RANK
|
||||
,0 TIE_COUNT
|
||||
,0 POPULATION
|
||||
from EMP
|
||||
group by DEPT_ID
|
||||
union all
|
||||
select 50 LINE
|
||||
,null EMP_ID
|
||||
,null EMP_NAME
|
||||
,DEPT_ID
|
||||
,avg(SALARY) SALARY
|
||||
,0 RANK
|
||||
,0 TIE_COUNT
|
||||
,count(*) POPULATION
|
||||
from EMP
|
||||
group by DEPT_ID
|
||||
union all
|
||||
select 70 LINE
|
||||
,null EMP_ID
|
||||
,null EMP_NAME
|
||||
,DEPT_ID
|
||||
,0 SALARY
|
||||
,0 RANK
|
||||
,0 TIE_COUNT
|
||||
,0 POPULATION
|
||||
from EMP
|
||||
group by DEPT_ID
|
||||
union all
|
||||
select 90 LINE
|
||||
,null EMP_ID
|
||||
,null EMP_NAME
|
||||
,DEPT_ID
|
||||
,0 SALARY
|
||||
,0 RANK
|
||||
,0 TIE_COUNT
|
||||
,0 POPULATION
|
||||
from EMP
|
||||
group by DEPT_ID
|
||||
union all
|
||||
select 110 LINE
|
||||
,EMP_ID
|
||||
,EMP_NAME
|
||||
,DEPT_ID
|
||||
,SALARY
|
||||
,(select count(distinct EMP4.SALARY)
|
||||
from EMP EMP4
|
||||
where EMP4.DEPT_ID = EMP3.DEPT_ID
|
||||
and EMP4.SALARY >= EMP3.SALARY) RANK
|
||||
,(select count(*)
|
||||
from EMP EMP2
|
||||
where EMP2.DEPT_ID = EMP3.DEPT_ID
|
||||
and EMP2.SALARY = EMP3.SALARY) TIE_COUNT
|
||||
,0 POPULATION
|
||||
from EMP EMP3
|
||||
where $topN >= -- Here is the meat, Correlated subquery
|
||||
(select count(distinct EMP4.SALARY)
|
||||
from EMP EMP4
|
||||
where EMP4.DEPT_ID = EMP3.DEPT_ID
|
||||
and EMP4.SALARY >= EMP3.SALARY))
|
||||
order by DEPT_ID ,LINE ,SALARY desc, EMP_ID;
|
||||
14
Task/Top-rank-per-group/SQL/top-rank-per-group-3.sql
Normal file
14
Task/Top-rank-per-group/SQL/top-rank-per-group-3.sql
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
WITH ranked_emp AS (
|
||||
SELECT emp_name
|
||||
,dept_id
|
||||
,salary
|
||||
,DENSE_RANK() OVER (PARTITION BY dept_id ORDER BY salary ) ranking
|
||||
FROM emp
|
||||
)
|
||||
SELECT dept_id
|
||||
,ranking
|
||||
,emp_name
|
||||
,salary
|
||||
FROM ranked_emp
|
||||
WHERE ranking <= 2
|
||||
ORDER BY dept_id, ranking;
|
||||
Loading…
Add table
Add a link
Reference in a new issue