首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

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

而业务系统的官网上需要滚动展示一些热门资讯信息列表(浏览量越大代表越热门),而且每个类别的相关资讯记录至多显示3,换句话:“按照资讯分类分组,取每组的3资讯信息列表”。...资讯分类 资讯信息记录表示例数据如下: ? 资讯信息记录表 需求 :取热门的资讯信息列表且每个类别只取3。...二、核心思想 一般意义上我们在取N记录时候,都是根据某个业务字段进行降序排序,然后取N就能实现。...但是当你仔细阅读我们的题目要求,你会发现:“它是让你每个类型下都要取浏览量的3记录”。 一种比较简单但是粗暴的方式就是在Java代码中循环所有的资讯类型,取出每个类型的3记录,最后进行汇总。...要计算出某资讯信息的在同资讯分类下所有记录中排第几名,换成算出 有多少浏览量比当前记录的浏览量高,然后根据具体的多少(N+1就是N+1就是当前记录所在其分类下的的排名。

25.6K32

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...  2、再根据这些 task_id 从 t_task_exec_log 批量查询每个任务的N记录的 log_id 集字符串 SELECT task_id, SUBSTRING_INDEX(GROUP_CONCAT...MySQL8 新增的特性   关于窗口函数可查阅官方文档:Window Functions,不做过多介绍   我们用 ROW_NUMBER 来实现 取N或倒数N   1、批量查询 task_id...  2、使用 ROW_NUMBER ,取N或倒数N   取第一   结果如下   取 5 SELECT * from ( SELECT *, ROW_NUMBER() OVER

65110

买内存的攻略

看到这张图,你应该知道我是多少需要一根内存啊 内存价格在18年,到19年会大降价,因为中国要做半导体了,三星的闪存涨价,导致半导体相关的好多东西都涨价了,作为要靠电脑吃饭的人,真是无语。。。。...,期待三星无良商家早点倒闭 内存小常识 准备买内存,一定要弄清楚内存相关的参数,比如型号是DDR3,还是ddr4,笔记本内存的电压是低压1.35v,还是标压1.5v,以及内存的主频是1600mhz...要确定自己笔记本时候有多余的内存接口,以及获取主频,在任务管理器,内存中 要知道自己cpu参数,看是否支持ddr4,一般intel6代以后都支持ddr4内存。...查看电脑各个部件的温度 系统稳定性测试 这是自己狗东上内存的信息 虽然我cpu支持ddr4,但是主板不支持,所以只能买ddr3了,而且最好是1600mhz 主频,笔记本二根内存取决最低的主频...** 参考文章 内存怎么正确选择 怎样选购笔记本内存 DDR4内存用什么主板 怎么看主板是否支持DDR4内存 aida64基础教程

3.9K80
领券