SQL中提取重复记录中时间最近的一条,不重复的直接取出来。时间是datetime类型的 5

处理之前:工单编号环节名称处理人环节开始时间2014102110011783工单处理1103302014/10/2119:182014102110011147工单处理11... 处理之前:
工单编号 环节名称 处理人 环节开始时间

2014102110011783 工单处理 110330 2014/10/21 19:18

2014102110011147 工单处理 110231 2014/10/21 18:17

2014102110011147 工单处理 110308 2014/10/21 18:16

2014102110010605 工单处理 110479 2014/10/21 17:46

2014102110010605 工单处理 110306 2014/10/21 17:42

2014102010002517 工单处理 100476 2014/10/21 17:41

2014102110010121 工单处理 118475 2014/10/21 17:19

2014102110010121 工单处理 110375 2014/10/21 17:17
处理之后:
工单编号 环节名称 处理人 环节开始时间

2014102110011783 工单处理 110330 2014/10/21 19:18

2014102110011147 工单处理 110231 2014/10/21 18:17

2014102110010605 工单处理 110479 2014/10/21 17:46

2014102010002517 工单处理 100476 2014/10/21 17:41

2014102110010121 工单处理 118475 2014/10/21 17:19
这是效果
展开
 我来答
jelvis
2014-10-27 · TA获得超过5631个赞
知道大有可为答主
回答量:2480
采纳率:62%
帮助的人:802万
展开全部

你这不能叫重复数据,处理人 和  环节开始时间 都是不一样的,想实现你的结果,就要对环节开始时间进行排序,对工单编号、 环节名称进行分组,然后再取

select 工单编号,环节名称,处理人,环节开始时间 from (
select ROW_NUMBER() over(partition by 工单编号,环节名称 order by 环节开始时间) ROWNO,
工单编号,环节名称,处理人,环节开始时间 ) where ROWNO=1
更多追问追答
追问
你这个语句有问题哦,能补充一下吗
追答

有点,里面忘写from 表名了

select 工单编号,环节名称,处理人,环节开始时间 from (
select ROW_NUMBER() over(partition by 工单编号,环节名称 order by 环节开始时间) ROWNO,
工单编号,环节名称,处理人,环节开始时间 from 表名
) as t   where ROWNO=1
小白九久玩科技
2014-10-27 · 科技小白,2020九久来袭
小白九久玩科技
采纳数:96 获赞数:153

向TA提问 私信TA
展开全部
select 工单编号,环节名称,处理人,环节开始时间 from table t,(

sleect 工单编号,max(环节开始时间) m
from table group by 工单编号)tt
where t.工单编号=tt.工单编号
and t.环节开始时间=tt.m
group by 工单编号,环节名称,处理人,环节开始时间 ;

这样试下吧,可能效率不是最高的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lzh3452
2014-10-27 · TA获得超过1044个赞
知道小有建树答主
回答量:1168
采纳率:100%
帮助的人:845万
展开全部
select * from
(select 工单编号,环节名称,处理人,环节开始时间,row_number() over (partition by 工单编号 order by 环节开始时间 desc) row_num form 工单表) t
where t.row_num = 1

未测试,纯手写,如有疑问可追问。

更多追问追答
追问
可以运行,但是数据多一点好像结果就对不上了哦,能帮忙解决下吗,拜托
追答
select * from 工单表 t,
(select rowid row_id,row_number() over (partition by 工单编号 order by 环节开始时间 desc) row_num form 工单表) t1
where t1.row_num = 1 and t.rowid = chartorowid(t1.row_id)

你看这样如何?

主要是里面那个子查询,你看看数据多时结果是否正确,正确的是不重复的数据row_num都等于1,重复的从1开始加,这要这个子查询没错,就不会有问题。

另外,你说的结果不对,指的是什么不对?

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式