求助SQL语句

xdhis 2015-12-08 11:36:01
表中字段:包号,公司ID,公司技术人员数,公司人员总数

我现在想按包分组依据公司技术人员占公司总人数比例计算,比例最高得3分,依次递减0.5分,减到0分为止,
SQL该如何写啊?
...全文
129 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_22790241 2015-12-08
  • 打赏
  • 举报
回复
 create table test_1208 (
 company_id int,
 dept_no int,
 tech_cn int,
 total_cn int
 )
 
 insert into test_1208 values(1001,101,10,100);
 insert into test_1208 values(1001,102,30,100);
  insert into test_1208 values(1001,103,20,100);
    insert into test_1208 values(1001,104,40,100);
    
    
     insert into test_1208 values(2002,201,80,200);
 insert into test_1208 values(2002,202,30,100);
  insert into test_1208 values(2002,203,40,100);
    insert into test_1208 values(2002,204,50,100);
    
    select company_id,dept_no,tech_cn,total_cn,
    case cn when 1 then 3 
            when 2 then 3-0.5
            when 3 then 3-1 
            when 4 then 3-1.5
            when 5 then 3-2 
            when 6 then 3-2.5
            when 7 then 0
            else  null
            end as pt
    from (
    select company_id,dept_no,tech_cn,total_cn,
    dense_rank()over(partition by company_id order by tech_cn desc) as cn from test_1208) a;
qq_22790241 2015-12-08
  • 打赏
  • 举报
回复
能给一些测试数据么?什么叫包号?

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧