mysql查询每个分组前10条

更新时间:02-08 教程 由 心蛊 分享

在mysql中,我们可以使用LIMIT关键字来限制查询结果的数量。但是,如果我们想要查询每个分组前10条数据呢?下面就介绍一种解决方法。

SELECT *FROM (SELECT *,ROW_NUMBER() OVER (PARTITION BY 分组字段 ORDER BY 排序字段) AS rnFROM 表名) tWHERE t.rn<= 10

以上代码中,我们使用了ROW_NUMBER()窗口函数来为每个分组中的数据行添加一个行号。然后,我们在外层查询中使用了LIMIT关键字,限制行号(也就是每个分组中的数据行)不大于10。

SELECT *FROM (SELECT *,ROW_NUMBER() OVER (PARTITION BY 分组字段 ORDER BY 排序字段) AS rnFROM 表名) tWHERE t.rn<= 10

这种方法简单、高效,可以轻松查询每个分组前10条数据。需要注意的是,这个方法只适用于MySQL8.0及以上版本。

声明:关于《mysql查询每个分组前10条》以上内容仅供参考,若您的权利被侵害,请联系13825271@qq.com
本文网址:http://www.25820.com/tutorial/14_2082203.html