MySQL分组查询后如何获取每组的前N条数据,你会吗?( 二 )


MySQL分组查询后如何获取每组的前N条数据,你会吗?

文章插图
 
至此,我们已经完成了本文开头提出来的功能需求;那……还有没有其他的实现方式呢?当然有,只不过其实现起来虽然不同,但是其本质思想跟本文开头debug提到的那样“计算出排名top值”是差不多的;
诺,这就是另外的实现方式,从SQL语句就可以看出来,它是上述第一种实现方式的变形:
SELECTt.*FROMcourse AS tWHERE(SELECTCOUNT(*)FROMcourse AS cWHEREc.type_id = t.type_idAND c.scan_total > t.scan_total) < 3ORDER BYt.type_id ASC,t.scan_total DESCOK,本文讲解到此介绍,打完收工,咱们下期再见!
 
总结
代码/数据库下载:本文涉及到的数据库建表语句DDL以及对应的测试数据案例 可私信暗号:1001
 


推荐阅读