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

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

| 站内搜索： 热门Tag： 淘特 CMS 门户 信息港 房产 汽车 旅游 分类信息 下载 JspCms 内容管理系统 更多>> |

现在位置：首页> 数 据 库

编辑推荐
?Oracle 11g数据库移植
?使用SQL Server 2008进行服..
?用SQL语句实现随机查询数据并不显示错误..
?一条语句简单解决“每个Y的最新X”的SQ..
?磁盘空间使用关乎SQL Server性能
?SQL Server存储过程命名标准
?SQL Server里附加数据库出错的解..
?SQL实现最优坐地铁方案
?SQL Server 2008之备份压缩
?SQL Server 2008 想说爱你..

热门点击
·Oracle 11g数据库移植
·Access中使用SQL语句应掌握的几点..
·SQL Server存储过程编写和优化措..
·SQL server服务器大内存配置
·SQL实现最优坐地铁方案
·SQL Server存储过程命名标准
·一条语句简单解决“每个Y的最新X”的SQ..
·用SQL语句实现随机查询数据并不显示错误..
·微软SQL Server 2008数据仓..
·使用SQL Server 2008进行服..

图片推荐
· | ·

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

“每个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列在建立索引，可以大大优化查询速度。
上一篇：SQL Server存储过程命名标准 下一篇：用SQL语句实现随机查询数据并不显示错误数据

[1]

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

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

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