SQL实现:按分类获取最新5条记录的方法
108 浏览量
更新于2024-08-31
收藏 36KB PDF 举报
在SQL编程中,处理查询每个分类下最新的几条记录是一个常见的需求。假设我们有一个名为`table1`的表,其中包含字段`ID`(主键自增), `Name`, `class`(分类编号)以及`date`(记录更新时间)。为了获取每个分类最新的5条记录,我们可以使用窗口函数`ROW_NUMBER()`来实现。
首先,创建一个子查询,通过`PARTITION BY`语句将数据按分类`class`分组,并按照`date`字段降序排列,这样每一组中的第一行就是最新的记录。然后,我们使用`ROW_NUMBER()`函数为每一组分配一个行号(`rowindex`),这样我们就可以筛选出每个分类前5条记录。具体SQL代码如下:
```sql
SELECT ID, Name, class, date
FROM (
SELECT ID, Name, class, date, ROW_NUMBER() OVER (PARTITION BY class ORDER BY date DESC) as rowindex
FROM table1
) AS aw
WHERE rowindex <= 5
```
接下来,代码展示了如何在一个名为`#temp`的临时表中插入示例数据,用于演示不同公司的产品更新日期。这个临时表包含`company`, `product`, 和 `inputDate`三个字段。
在这个例子中,如果我们要查询杭州大明有限公司的最新5个产品更新记录,或者北京小科有限公司的最新记录,只需要替换`table1`为`#temp`,并根据`company`条件进行过滤。然而,这里的代码并没有直接演示如何在实际场景中针对`#temp`表执行这个查询,因为`#temp`表的数据结构与`table1`不同,且没有明确的分类字段。
这个SQL代码段展示了如何使用窗口函数`ROW_NUMBER()`在SQL中高效地获取每个分类下的最新记录,这对于维护和分析数据库中的实时数据非常有用。在实际应用时,确保调整查询以适应你的数据源和业务需求。
2013-06-21 上传
2008-10-15 上传
2018-11-07 上传
2011-04-03 上传
2021-01-20 上传
2020-09-11 上传
2019-03-01 上传
2011-06-10 上传
weixin_38584642
- 粉丝: 5
- 资源: 945
最新资源
- SSM动力电池数据管理系统源码及数据库详解
- R语言桑基图绘制与SCI图输入文件代码分析
- Linux下Sakagari Hurricane翻译工作:cpktools的使用教程
- prettybench: 让 Go 基准测试结果更易读
- Python官方文档查询库,提升开发效率与时间节约
- 基于Django的Python就业系统毕设源码
- 高并发下的SpringBoot与Nginx+Redis会话共享解决方案
- 构建问答游戏:Node.js与Express.js实战教程
- MATLAB在旅行商问题中的应用与优化方法研究
- OMAPL138 DSP平台UPP接口编程实践
- 杰克逊维尔非营利地基工程的VMS项目介绍
- 宠物猫企业网站模板PHP源码下载
- 52简易计算器源码解析与下载指南
- 探索Node.js v6.2.1 - 事件驱动的高性能Web服务器环境
- 找回WinSCP密码的神器:winscppasswd工具介绍
- xctools:解析Xcode命令行工具输出的Ruby库