SELECT DISTINCT(SERV_ID),DHHM,YWBM,CFLB,TIMES FROM YC_SUCCESS_BAK WHERE YWBM = 36742;
执行出来的对应结果却是这? 并没有按照serv_id唯一的
15812723 82882895 36742 1 2009-07-17 10:32:08
15812723 82882895 36742 1 2009-07-17 10:32:09
15812149 82882143 36742 1 2009-07-17 10:32:09
15812149 82882143 36742 1 2009-07-17 10:32:08
执行出来的对应结果却是这? 并没有按照serv_id唯一的
15812723 82882895 36742 1 2009-07-17 10:32:08
15812723 82882895 36742 1 2009-07-17 10:32:09
15812149 82882143 36742 1 2009-07-17 10:32:09
15812149 82882143 36742 1 2009-07-17 10:32:08
SELECT SERV_ID,MAX(DHHM),MAX(YWBM),MAX(CFLB),MAX(TIMES) FROM YC_SUCCESS_BAK WHERE YWBM = 36742
group by SERV_ID;
select SERV_ID,DHHM,YWBM,CFLB,TIMES,Row_number()over(partition by SERV_ID order by SERV_ID) rn
from YC_SUCCESS_BAK where YWBM = 36742;)
where rn=1;
和我最开始一样,对distinct误解了这里如果只对serv_id做distinct的话。其他的结果如何取叻
返回单一的SERV_ID
SELECT DISTINCT * FROM YC_SUCCESS_BAK WHERE YWBM = 36742;
去除重复行
PS:语句直接打的,不知道有语法语法错误不。。哈哈
select SERV_ID , DHHM, YWBM, CFLB, TIMES from
(
select SERV_ID , DHHM, YWBM, CFLB, TIMES,rank() over(partition by SERV_ID order by TIMES) cc
FROM YC_SUCCESS_BAK
WHERE YWBM = 36742 and cc=1 --cc这里代表的意思是返回按SERV_ID分组按时间排列的第一行,当然- --也可以取其他行拉,哈哈,按你的需求应该是第一行
) tt
from (select SERV_ID,
DHHM,
YWBM,
CFLB,
TIMES,
rank() over(partition by SERV_ID order by TIMES) cc
FROM YC_SUCCESS_BAK
WHERE YWBM = 36742) tt
where tt.cc = 1