如何查询分公司对应的地区前3名【补贴】

如何查询分公司对应的地区前3名

yikefu 发布于 2020-11-2 17:08
1min目标场景问卷 立即参与
回答问题
悬赏:5 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
1
L大大Lv7高级互助
发布于2020-11-2 17:09

select 分公司,地区,salary,rank from (  
select heyf_tmp.分公司,heyf_tmp.地区,heyf_tmp.salary,@rownum:=@rownum+1 ,  
if(@pdept=heyf_tmp.分公司,@rank:=@rank+1,@rank:=1) as rank,  
@pdept:=heyf_tmp.分公司  
from (   
select count(1) empid,  
substring_index(c.duty_third_org_name, '_',- 1 ) 分公司,
c.second_division 地区,
sum(cs.bid_amt) salary 
from cscec8b_project_info_ver c
left join cscec8b_project_attr_info_ver cs ON c.row_id = cs.row_id
group by substring_index(c.duty_third_org_name, '_',- 1 ),c.second_division 
order by substring_index(c.duty_third_org_name, '_',- 1 ) asc,sum(cs.bid_amt) desc
) heyf_tmp ,(select @rownum :=0 , @pdept := null ,@rank:=0) a ) result   
where rank<=3

最佳回答
0
luojian0323Lv7资深互助
发布于2020-11-2 17:10

mysql 分组查询取各分组的前三名


按name分组取最大的两个(N个)val
select a.* from tb a where 2 > (select count(*) from tb where name = a.name and val > a.val ) order by a.name,a.val

  • 3关注人数
  • 459浏览人数
  • 最后回答于:2020-11-2 17:10
    请选择关闭问题的原因
    确定 取消
    返回顶部