|  | 设为首页 加入收藏 联系我们 |

|  | 首 页 行业资讯 网站运营 网络编程 数 据 库 网页设计 网络安全 网站推广 平面设计 服 务 器 电子商务 |

| 站内搜索： 热门关键字： 淘特　CMS　门户　信息港　房产　汽车　旅游　分类信息　下载　JspCms 内容管理系统 报社采编 |

现在位置：首页> 数 据 库

编辑推荐
·Oracle 11g数据库移植
·用SQL语句实现随机查询数据并不显示错误..
·一条语句简单解决“每个Y的最新X”的SQ..
·SQL Server存储过程命名标准
·SQL实现最优坐地铁方案
·SQL server服务器大内存配置
·SQL Server存储过程编写和优化措..
·Access中使用SQL语句应掌握的几点..
·SQL Server里附加数据库出错的解..
·SQL Server 2008之备份压缩

热门点击
·微软SQL Server 2008数据仓..
·使用SQL Server 2008进行服..
·SQL Server 2005数据库分区..
·SQL Server 2008性能和可扩..
·磁盘空间使用关乎SQL Server性能
·SQL Server 2008 想说爱你..
·SQL Server 2008之备份压缩
·SQL Server里附加数据库出错的解..
·Access中使用SQL语句应掌握的几点..
·SQL Server存储过程编写和优化措..

图片推荐
·Oracle 11g数据库移植 | ·微软SQL Server 2008数据仓..

一条语句简单解决“每个Y的最新X”的SQL经典问题
作者： 日期：2010-03-31 出处： 点击:

“每个Y的最新X”是一个经典的SQL问题，工作中经常碰到。当然不是“按Y分组求最新的X值”那么简单，要求最新X的那条记录或主键ID。用一条SQL语句可以简单的解决此问题。 生成实例表和数据：
--创建表 CREATE TABLE dbo.Tab ( ID int NOT NULL IDENTITY (1, 1), Y varchar(20) NOT NULL, X datetime NOT NULL ) GO --插入数据 INSERT INTO Tab(Y, X) values('BBB', '2007-10-23 11:11:11') INSERT INTO Tab(Y, X) values('BBB', '2007-10-23 11:11:11') INSERT INTO Tab(Y, X) values('BBB', '2007-10-23 10:10:10') INSERT INTO Tab(Y, X) values('AAA', '2007-10-23 12:12:12') INSERT INTO Tab(Y, X) values('AAA', '2007-10-23 10:10:10') INSERT INTO Tab(Y, X) values('AAA', '2007-10-23 11:11:11') GO
解决“每个Y的最新X”经典SQL问题：
--一条SQL语句实现 SELECT ID, Y, X FROM Tab T WHERE (NOT EXISTS (SELECT 1 FROM Tab T2 WHERE (T2.Y = T.Y) AND (T2.X > T.X OR T2.X = T.X AND T2.ID > T.ID)))
在Y列在建立索引，可以大大优化查询速度。

[1]

- 返回首页
- 打印本文
- 加入收藏
- 返回顶部
- 关闭窗口

相关文章 | 查看留言 发表评论
用 户： |
内 容： |
验证码： |

关于本站　|　免责声明　|　联系我们　|　版权隐私　|　友情链接　|　网站地图
联系电话：0531-88511191 | 客服QQ：6410861 | Email：totcms@163.com | ICP备：88888号 Copyright © TotCms.com All Rights Reserved. 济南淘网科技 版权所有