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