Multiple Ranks in one table

前端 未结 6 964
庸人自扰
庸人自扰 2020-11-27 22:00

I need the following, Can anyone please help me do it.

Rank   Cust_Type   Cust_Name   Revenue
1      Top         A           10000
2      Top         B               


        
6条回答
  •  挽巷
    挽巷 (楼主)
    2020-11-27 22:12

    This works for me by keeping ranking of sales revenue and ordering separate .

    SELECT 
             (Select count(s1.revenue)+1 from sales s1 where s.cust_type_id = s1.cust_type_id and s1.revenue > s.revenue) 
              As rank,
    t.type_name,
              s.cust_name,
              s.revenue
    FROM      sales s LEFT JOIN 
              cust_type t USING(cust_type_id)
              Group by t.type_name,s.cust_name,s.revenue DESC order by s.revenue DESC;
    

提交回复
热议问题