首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL 分组排序后 → 如何N条或倒数N

N条或倒数N条   我们回到标题,分组排序后,如何N条记录或倒数N条记录   循环查数据库   1、先批量查询 task_id   2、再根据 task_id 逐个去查 t_task_exec_log...,排序获取N条记录   3、最后进行一个数据汇合,封装成页面需要的数据格式   但这种方式会循环查数据库,一般是被禁止的   GROUP BY 结合 MySQL 函数   1、先批量查询 task_id...) GROUP BY task_id; SUBSTRING_INDEX(str, delim, count) 不做过多介绍,具体可翻阅:SUBSTRING_INDEX count 参数可以用来实现N...关于窗口函数可查阅官方文档:Window Functions,不做过多介绍   我们用 ROW_NUMBER 来实现 N条或倒数N条   1、批量查询 task_id   2、使用 ROW_NUMBER...,N条或倒数N条   第一条   结果如下    5 条 SELECT * from ( SELECT *, ROW_NUMBER() OVER(PARTITION BY task_id

88210
您找到你想要的搜索结果了吗?
是的
没有找到

SQL分组查询后每组的N条记录

而业务系统的官网上需要滚动展示一些热门资讯信息列表(浏览量越大代表越热门),而且每个类别的相关资讯记录至多显示3条,换句话:“按照资讯分类分组,每组的3条资讯信息列表”。...资讯信息记录表 需求 :热门的资讯信息列表且每个类别只3条。 二、核心思想 一般意义上我们在N条记录时候,都是根据某个业务字段进行降序排序,然后N条就能实现。...形如“select * from info order by views asc limit 0,3 ”,这条SQL就是info表中的3条记录。...但是当你仔细阅读我们的题目要求,你会发现:“它是让你每个类型下都要浏览量的3条记录”。 一种比较简单但是粗暴的方式就是在Java代码中循环所有的资讯类型,取出每个类型的3条记录,最后进行汇总。...假如以本文上面的示例数据说明:就是在计算每个资讯信息记录时,多计算出一作为其“排名”字段,然后“排名”字段的小于等于3的记录即可。

26K32

不同的SQL平台,如何百分之N的记录?

最近帮业务部门梳理业务报表,其中有个需求是就算某指标等待时间最长的百分之十,其实就是对等待时长进行倒序排序后,结果集的百分之十。...SQL Server实现方法 SQL Server上有个TOP Percent的方法可以直接取结果的(或后)百分之N 例如有如下一张City表 我们10%的数据记录可以这样写: SELECT TOP...10 PERCENT * FROM City ORDER BY ID DESC 结果如下: Oracle实现方法 Oracle有个ROWNUM伪可以用来帮助我们计算百分之N。...ROW_NUM FROM City A , (SELECT @row_num:=0) B ORDER BY ID DESC 这样我们就可以得到一张有自增长列的结果集了,接下来还是按照上面类似的方法,...N的方法了,代码可以验证一下收藏起来留着下次直接套用。

13010
领券