Oracle 员工积分排名 创建视图语句

Oracle 员工积分排名

 

建视图

 

select t.operate_date,
       t.operate_user,
       t.operate_dept,
       t.add_score      +
       t.modify_score   +
       t.over_score     +
       t.delete_score   +
       t.up_score       +
       t.down_score     +
       t.use_score      +
       t.opinion_score  +
       t.advice_score   +
       t.audit_ok_score +
       t.audit_back_score+
       t.read_score   
    
 as score
 from km_operate_date_log t

 

 

 


 select operate_user, sum(score) from (
    select t.operate_date,
       t.operate_user,
       t.operate_dept,
       t.add_score      +
       t.modify_score   +
       t.over_score     +
       t.delete_score   +
       t.up_score       +
       t.down_score     +
       t.use_score      +
       t.opinion_score  +
       t.advice_score   +
       t.audit_ok_score +
       t.audit_back_score+
       t.read_score   
    
  as score
 from km_operate_date_log t
 
 
 ) group by operate_user

 

 


视图
嵌套select多,影响性能 一般不用

create or replace view km_scoreorder_user as
select operate_user ,sum(score) as s_score from (
    select t.operate_date,
       t.operate_user,
       t.operate_dept,
       (t.add_score      +
       t.modify_score   +
       t.over_score     +
       t.delete_score   +
       t.up_score       +
       t.down_score     +
       t.use_score      +
       t.opinion_score  +
       t.advice_score   +
       t.audit_ok_score +
       t.audit_back_score+
       t.read_score)

  as score
 from km_operate_date_log t
 )
 group by operate_user;

 

用一条select语句搞定

 select operate_user ,sum(add_score)+
                      sum(modify_score)+
                      sum(over_score) +
                      sum(delete_score)+
                      sum(up_score)+
                      sum(down_score)+
                      sum(use_score)+
                      sum(opinion_score)+
                      sum(advice_score)+
                      sum(audit_ok_score)+
                      sum(audit_back_score)+
                      sum(read_score)
 as s_score
 from km_operate_date_log t
 group by operate_user

 

 

 

调用创建的视图  在SQL中直接取出前几名

 

select row_.*, rownum rownum_ from (
   select * from v_km_operate_sum_score t order by t.sum_score desc
) row_ where rownum <=9

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值