mysql實現分組排序


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是同一張表)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM