数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

“每个Y的最新X”的SQL经典问题


发布日期:2024年02月22日
 
“每个Y的最新X”的SQL经典问题

每个Y的最新X是一个经典的SQL问题工作中经常碰到当然不是按Y分组求最新的X值那么简单要求最新X的那条记录或主键ID用一条SQL语句可以简单的解决此问题

生成实例表和数据

创建表CREATE TABLE dboTab ( ID int NOT NULL IDENTITY ( ) Y varchar() NOT NULL X datetime NOT NULL )GO插入数据INSERT INTO Tab(Y X) values(BBB ::)INSERT INTO Tab(Y X) values(BBB ::)INSERT INTO Tab(Y X) values(BBB ::)INSERT INTO Tab(Y X) values(AAA ::)INSERT INTO Tab(Y X) values(AAA ::)INSERT INTO Tab(Y X) values(AAA ::)GO

解决每个Y的最新X经典SQL问题

一条SQL语句实现 SELECT ID Y XFROM Tab TWHERE (NOT EXISTS (SELECT FROM Tab T WHERE (TY = TY) AND (TX > TX OR TX = TX AND TID > TID)))

在Y列在建立索引可以大大优化查询速度

上一篇:Oracle中如何删除重复数据

下一篇:带参数动态执行sql语句:Execute Immediate