工作SQL:
需求:
同部门教师 教研平均获奖次数 | 同职称教师 教研平均获奖次数 | 全校教师 教研平均获奖次数 |
---|---|---|
要求平均获奖次数不能以排名显示
-- 教研获奖打败本部门教师人数 改为:部门排名 :5/145
select
RANK() OVER(partition by a.xymc ORDER BY JYHJCS desc) || '/' || b.num JSRS,
a.jzgh,
a.JYHJCS,
a.xymc
from
(
select
a.jzgh,
a.xymc,
sum(a.num) JYHJCS
from
(
-- huojiang名单
select
count(distinct a.CGMC) num,
b.jzgh,
b.xymc
from
DC.jsx b
join
MODEL.hjmd a
on a.ZYWCR=b.jzgxm
where b.GWLX='专任教师'
group by b.jzgh,b.xymc
union all
--成果奖
select
count(distinct a.CGMC) num,
b.jzgh,
b.xymc
from
DC.JSXXB b
join
MODEL.JXCGJ a
on a.HJZ=b.jzgxm
where b.GWLX='专任教师'
group by b.jzgh,b.xymc
) a
group by a.jzgh,a.xymc
) a
分析
观察可发现原SQL /右边即是本部门全部人数,只需累计本部门全部获奖人数即可.
修改后的SQL
select SUM(JYHJCS) nums,xymc from (
select
a.jzgh,
a.xymc,
sum(a.num) JYHJCS
from
(
-- 获奖名单
select
DECODE(count(distinct a.CGMC), null, 0,count(distinct a.CGMC)) num,
b.jzgh,
b.xymc
from
DC.JSXXB b
left join
MODEL.HJMD a
on a.ZYWCR=b.jzgxm
where b.GWLX='专任教师'
group by b.jzgh,b.xymc
拓展
同职称教师 全校教师 如何修改??