oracle 函数 rollup
点击查看代码
select
tt.departmentId,nvl(tt.departmentName,'合计') as departmentName,
sum(tt.totalTutorNum),
sum(tt.recruidTutorNum),
sum(tt.inSchoolStuNum),
sum( tt.stuAndTutorRate),
sum(tt.inTutorNum),
sum(tt.outTutorNum),
sum(tt.normalTutorNum),
sum(tt.hightTutorNum)
from (
select dw.dw_id as departmentId, dw.dwmc as departmentName
, nvl(xyds.nums,0) as totalTutorNum
, nvl(zsds.nums,0) as recruidTutorNum
, nvl(zjs.nums,0) as inSchoolStuNum
--师生比(在籍生/招生导师)
,case when zsds.nums =0 or zsds.nums is null then 0 else ROUND(nvl(zjs.nums,0)/zsds.nums,2) end as stuAndTutorRate
, nvl(xnds.nums,0) as inTutorNum
, nvl(xwds.nums,0) as outTutorNum
, nvl(sds.nums,0) as normalTutorNum
, nvl(bds.nums,0) as hightTutorNum
from (
select * from ly_yjs_hxsj.t_Ggzy_Dwxx dw where dw.sfzsdw ='1'
union
select dw.*
from ly_yjs_hxsj.t_Ggzy_Dwxx dw
left join ly_yjs_hxsj.t_szgl_dsxx t on dw.dw_id = t.xsm
where (dw.sfzsdw !='1' or dw.sfzsdw is null) and instr(dslx,'2')>0
) dw
-- <!--现有导师数-->
left join (
select xsm, count(jgh) as nums from ly_yjs_hxsj.t_szgl_dsxx group by xsm
) xyds on xyds.xsm = dw.dw_id
--<!--招生导师数-->
left join (
select xsm, count(jgh) as nums from ly_yjs_hxsj.t_szgl_dsxx where sftz = '1' group by xsm
) zsds on zsds.xsm = dw.dw_id
-- <!--在籍生数-->
left join (
select xy, count(xs_id) as nums from ly_yjs_hxsj.t_xsgl_xsxx_xjxx where sfzx ='1' and xy !='000000' group by xy
) zjs on zjs.xy = dw.dw_id
-- <!--校内导师数-->
left join (
select xsm, count(jgh) as nums from ly_yjs_hxsj.t_szgl_dsxx where dssx ='1' group by xsm
) xnds on xnds.xsm = dw.dw_id
-- <!--校外导师数-->
left join (
select xsm, count(jgh) as nums from ly_yjs_hxsj.t_szgl_dsxx where dssx ='0' group by xsm
) xwds on xwds.xsm = dw.dw_id
-- <!--硕导数-->
left join (
select xsm, count(jgh) as nums from ly_yjs_hxsj.t_szgl_dsxx where instr(dslx,'1')>0 group by xsm
) sds on sds.xsm = dw.dw_id
-- <!--博导数-->
left join (
select xsm, count(jgh) as nums from ly_yjs_hxsj.t_szgl_dsxx where instr(dslx,'2')>0 group by xsm
) bds on bds.xsm = dw.dw_id
--<!--where dw.SFZSDW ='1'-->
order by dw.dw_id
) tt
group by rollup((tt.departmentId,tt.departmentName))
posted on 2022-11-19 11:57 HeavenTang 阅读(99) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2017-11-19 java高级面试题
2017-11-19 Spring 使用注解方式进行事务管理