Oracle查询一批数据,某字段的内容有重复数据,怎样取相同的记录中时间最近的一条

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle查询一批数据,某字段的内容有重复数据,怎样取相同的记录中时间最近的一条相关的知识,希望对你有一定的参考价值。

比如:

C1 C2 C3 C4 C5
1 x a b 11.20

1 y d e 11.3
1 z g h 11.2
3 o j k 11.18
4 p m n 11.12
查询结果显示:
C1 C2 C3 C4 C5
1 x a b 11.20
3 o j k 11.18

4 p m n 11.12

SELECT
*
FRON
表 main
WHERE
NOT EXISTS (
SELECT 1
FROM 表 sub
WHERE main.C1 = sub.C1 AND main.C5 < sub.C5
)

算法就是, 对于 每一个 C1 不存在有其他行的 C5 比本行的 C5 更大
参考技术A select * from table a, (select max(c5) maxtime,c1 from table group by c1 ) b
where a.c5=b.maxtime and a.c1=a.c1
参考技术B SELECT
*
from
表 main
WHERE
NOT EXISTS (
SELECT 1
FROM 表 sub
WHERE main.C1 = sub.C1 AND main.C5 < sub.C5
)

测试过了,这个可行。

以上是关于Oracle查询一批数据,某字段的内容有重复数据,怎样取相同的记录中时间最近的一条的主要内容,如果未能解决你的问题,请参考以下文章

oracle查询某一个字段的数量总和

查询oracle表中字段中某数据的命令

在oracle中查询数据

MYSQL如何判断如果某字段有重复就取其中一条?

oracle中表A中有若干完全重复的字段,怎样查询出不是重复的信息

oracle查询重复数据方法