sql如何查询出指定字段不重复但是要保留最新的一个字段的值

a102470 2013-11-18 06:51:27
sql如何查询出所有符合“指定字段不重复但是要保留最新的一个字段”他们所有的值的最新记录。
...全文
424 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ycj80 2013-11-19
  • 打赏
  • 举报
回复

select * from tb a 
left join (select max(id) as id from tb group by 重复字段...)b
on a.id=b.id
无涯大者 2013-11-19
  • 打赏
  • 举报
回复
引用 3 楼 DBA_Huangzj 的回复:
select 重复字段列,max(不重复的字段) from tb where 复合条件的数据 更准确的写法需要你提供更多的信息
同意这种说法!
發糞塗牆 2013-11-19
  • 打赏
  • 举报
回复
select 重复字段列,max(不重复的字段) from tb where 复合条件的数据 更准确的写法需要你提供更多的信息
LongRui888 2013-11-18
  • 打赏
  • 举报
回复
引用 楼主 a102470 的回复:
sql如何查询出所有符合“指定字段不重复但是要保留最新的一个字段”他们所有的值的最新记录。
是类似这样吗,用row_number()函数就可以的,你试试:

drop table tb
go

create table tb(v int,vv varchar(10),t datetime)

insert into tb
select 1,'ee','2012-09-09' union all
select 1,'ff','2012-09-11' union all
select 1,'aa','2012-10-09' union all
select 2,'aa','2012-09-09' union all
select 2,'bb','2012-11-18' union all
select 2,'cc','2012-01-21' union all
select 2,'dd','2012-12-09'


select v,vv,t
from 
(
select *,
       ROW_NUMBER() over(partition by v order by t desc) as rownum
from tb
)t
where rownum = 1
/*
v	vv	t
1	aa	2012-10-09 00:00:00.000
2	dd	2012-12-09 00:00:00.000
*/
LongRui888 2013-11-18
  • 打赏
  • 举报
回复
有数据不,把数据,和你要的结果,贴出来把

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧