1. 代碼
select a.id,count(b.id) as rank from stock_up_rate a left join stock_up_rate b on a.industry=b.industry where a.up5<=b.up5 group by a.id
理解:使用a表中的一條記錄與b表中相同的industry進行連接,查找up5比自己大的b表的個數,這個數量就是它的排名。(a,b是同一張表)
如圖舉個例子,使用a表的id為1的數據用industry連接b表,會連接到b表的id為1,3的兩條數據,此時a.up5<=b.up5的條件count(b.id)的結果是1,所以id為1的industry排名為1
同理,id為3時,a.up5<=b.up5的條件count(b.id)的結果是2,所以id為3的industry排名為2
(a,b是同一張表)