17,086
社区成员
发帖
与我相关
我的任务
分享
WITH A(id,name) AS
(SELECT 1, 'a1' FROM DUAL
UNION ALL
SELECT 2, 'a2' FROM DUAL)
, B(id,Aid,create_time) AS
(SELECT 1, 1, '2015-06-23 12:00:00' FROM DUAL UNION ALL
SELECT 2, 1, '2015-06-22 12:00:00' FROM DUAL UNION ALL
SELECT 3, 2, '2015-02-21 12:00:00' FROM DUAL UNION ALL
SELECT 4, 2, '2015-01-21 12:00:00' FROM DUAL)
SELECT *
FROM A
LEFT JOIN (SELECT B.*,
ROW_NUMBER() OVER(PARTITION BY AID ORDER BY CREATE_TIME DESC) RN
FROM B) B
ON B.AID = A.ID AND
B.RN = 1
WITH A(id,name) AS
(SELECT 1, 'a1' FROM DUAL
UNION ALL
SELECT 2, 'a2' FROM DUAL)
, B(id,Aid,create_time) AS
(SELECT 1, 1, '2015-06-23 12:00:00' FROM DUAL UNION ALL
SELECT 2, 1, '2015-06-22 12:00:00' FROM DUAL UNION ALL
SELECT 3, 2, '2015-02-21 12:00:00' FROM DUAL UNION ALL
SELECT 4, 2, '2015-01-21 12:00:00' FROM DUAL)
SELECT A.NAME,MAX(B.CREATE_TIME) FROM A
LEFT JOIN B
ON B.AID=A.ID
GROUP BY A.NAME