工作SQL:要求平均获奖次数不能以排名显示

工作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  

拓展

同职称教师 全校教师 如何修改??

猜你喜欢

转载自blog.csdn.net/qq_58432443/article/details/125747668