17,377
社区成员
发帖
与我相关
我的任务
分享
WITH c_test AS(
SELECT '张三' A,TRUNC(dbms_random.value(10,100)) D,TRUNC(dbms_random.value(10,100)) B,20130411 C FROM dual
UNION
SELECT '张三' A,TRUNC(dbms_random.value(10,100)) D,TRUNC(dbms_random.value(10,100)) B,20130511 C FROM dual
UNION
SELECT '张三' A,TRUNC(dbms_random.value(10,100)) D,TRUNC(dbms_random.value(10,100)) B,20130311 C FROM dual
UNION
SELECT '李四' A,TRUNC(dbms_random.value(10,100)) D,TRUNC(dbms_random.value(10,100)) B,20130611 C FROM dual
UNION
SELECT '李四' A,TRUNC(dbms_random.value(10,100)) D,TRUNC(dbms_random.value(10,100)) B,20130311 C FROM dual
UNION
SELECT '李四' A,TRUNC(dbms_random.value(10,100)) D,TRUNC(dbms_random.value(10,100)) B,20130411 C FROM dual
UNION
SELECT '王五' A,TRUNC(dbms_random.value(10,100)) D,TRUNC(dbms_random.value(10,100)) B,20130311 C FROM dual
UNION
SELECT '王五' A,TRUNC(dbms_random.value(10,100)) D,TRUNC(dbms_random.value(10,100)) B,20140211 C FROM dual
)
SELECT *
FROM c_test t
WHERE EXISTS (SELECT 1
FROM (SELECT t.a,MAX(t.c) c
FROM c_test t
GROUP BY t.a) b
WHERE b.a = t.a
AND t.c = b.c);