欢迎来到天天文库
浏览记录
ID:59253714
大小:27.01 KB
页数:6页
时间:2020-09-08
《Oracle及窗口分析函数用法实例.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、窗口与分析函数用法实例一.现状与需求当前数据库表为各单位各年月下的统计分数值与案件数量。ixkeynamenyscorecount_l1caaab一支队981002caaac一支队 1103caaad一支队961204caaae一支队901305caaaf一支队911406caaag一支队751507caaah一支队741608caaaj一支队731709caaak一支队7118010caaal一支队8819011caaam一支队8920012aaaab一支队95.521013aaaac一支队91.222014aaaad一支队9
2、323015aaaae一支队9424016aaaaf一支队92.525017aaaag一支队9326018aaaah一支队9427019aaaai一支队9628020aaaaj一支队9329021aaaak一支队9130022aaaal一支队8531023aaaam一支队8632024caaan二支队9233025daaao二支队9334026daaa二支队8735027daaag二支队8636028daaah二支队8537029daaai二支队8438030daaaj二支队8339031daaak二支队8240032daaab
3、二支队8141033daaac二支队8042034daaad二支队9943035daaae二支队9344036aaaan二支队8745037aaaao二支队8846038baaa二支队8647039baaag二支队8148040baaah二支队8449041baaai二支队8350042baaaj二支队8751043baaak二支队8252044baaab二支队8153045baaac二支队8054046baaad二支队7855047baaae二支队76560表-1[temp_score]上表中是一支队、二支队在2013年,20
4、14年各月份的分数统计值与对应的案件数量。实际的生产库表中出现了这样的情况,为了进行验证,在一支队2013年的2月份分数为null,去掉了2013年8月份的数据记录。同时,在实际的库表中,每个月份有对应多类案件的考核分数与案件数量,这里只考虑一种案件类型。数据说明案件数量说明该单位在考核月份受理的案件总数量L。且该案件需要填写的数据字段个数C是一个定值(与案件类型有关),故案件数量乘单个案件所需个数Y=L×C是所需要填写字段总数。分数生成说明该单位在考核月份受理的案件中,实际总填写的字段总数T占应填写字段总数的百分比为分数。S=
5、TY单条记录说明当前数据表记录的是某单位某月份对应的考核得分S及案件数量L。改造需求考核该单位从考核月所处年的第一个月到当前考核月份的累计分数。一.方法范例Oracle-PL/SQLselectts.name,ts.ny,ts.score,ts.count_l,sum(decode(ts.score,null,0,nvl(ts.count_l,0)))over(orderbyts.namedesc,ts.nyascrowsbetween(selectcount(*)fromtemp_scoretwheret.name=ts.na
6、meandt.nylike''
7、
8、substr(ts.ny,1,4)
9、
10、'%'andt.ny11、12、substr(ts.ny,1,4)13、14、'%'andt.ny15、ecedingand0following)astotal_s,round((sum(ts.score*ts.count_l)over(orderbyts.namedesc,ts.nyascrowsbetween(selectcount(*)fromtemp_scoretwheret.name=ts.nameandt.nylike''16、17、substr(ts.ny,1,4)18、19、'%'andt.ny20、unt_l,0)))over(orderbyts.namedesc,ts.nyascrowsbetween(selectcount(*)fromtemp_scoretwheret.name=ts.nameandt.nylike''21、22、substr(ts.ny,1
11、
12、substr(ts.ny,1,4)
13、
14、'%'andt.ny15、ecedingand0following)astotal_s,round((sum(ts.score*ts.count_l)over(orderbyts.namedesc,ts.nyascrowsbetween(selectcount(*)fromtemp_scoretwheret.name=ts.nameandt.nylike''16、17、substr(ts.ny,1,4)18、19、'%'andt.ny20、unt_l,0)))over(orderbyts.namedesc,ts.nyascrowsbetween(selectcount(*)fromtemp_scoretwheret.name=ts.nameandt.nylike''21、22、substr(ts.ny,1
15、ecedingand0following)astotal_s,round((sum(ts.score*ts.count_l)over(orderbyts.namedesc,ts.nyascrowsbetween(selectcount(*)fromtemp_scoretwheret.name=ts.nameandt.nylike''
16、
17、substr(ts.ny,1,4)
18、
19、'%'andt.ny20、unt_l,0)))over(orderbyts.namedesc,ts.nyascrowsbetween(selectcount(*)fromtemp_scoretwheret.name=ts.nameandt.nylike''21、22、substr(ts.ny,1
20、unt_l,0)))over(orderbyts.namedesc,ts.nyascrowsbetween(selectcount(*)fromtemp_scoretwheret.name=ts.nameandt.nylike''
21、
22、substr(ts.ny,1
此文档下载收益归作者所有