多表查询结果出现了重复记录,在这些重复的记录中,根据(日期最晚的)条件要其中的一条记录,oracel中如何写
多表查询结果出现了重复记录,在这些重复的记录中,根据(日期最晚的)条件要其中的一条记录,oracel中怎么写啊
多表查询结果出现了重复记录,在这些重复的记录中,根据(日期最晚的)条件要其中的一条记录,oracel中怎么写啊,求教各位大神
------解决思路----------------------
根据日期排序,然后取第一条记录
select * from (select * from ...... order by 日期 desc) where rownum=1;
------解决思路----------------------
百度 oracle ROW_NUMBER() OVER
------解决思路----------------------
百度 oracle ROW_NUMBER() OVER
------解决思路----------------------
百度 oracle ROW_NUMBER() OVER
------解决思路----------------------
方法一堆,最后一种执行速度应该最快,但是写起来有点麻烦
多表查询结果出现了重复记录,在这些重复的记录中,根据(日期最晚的)条件要其中的一条记录,oracel中怎么写啊,求教各位大神
------解决思路----------------------
根据日期排序,然后取第一条记录
select * from (select * from ...... order by 日期 desc) where rownum=1;
------解决思路----------------------
百度 oracle ROW_NUMBER() OVER
------解决思路----------------------
百度 oracle ROW_NUMBER() OVER
------解决思路----------------------
百度 oracle ROW_NUMBER() OVER
------解决思路----------------------
方法一堆,最后一种执行速度应该最快,但是写起来有点麻烦
select id,ID,日期
from (
select id,ID,日期,row_number() over(partition by ID order by 日期 DESC) rn
from T
)where rn=1
select * from T T1
WHERE NOT EXISTS(SELECT 1 FROM T WHERE ID=T1.ID AND 日期>T1.日期)
select * from T
WHERE (ID,日期) IN (SELECT ID,MAX(日期) FROM T GROUP BY ID)
SELECT ID,MAX(日期),
MAX(字段1)KEEP(DENSE_RANK LAST ORDER BY 日期),
MAX(字段2)KEEP(DENSE_RANK LAST ORDER BY 日期)
……--其他字段同上
FROM T GROUP BY ID