Sql 如何从重复数据中提取最近插入的记录

Sql 如何从重复数据中提取最近插入的记录,sql,db2,Sql,Db2,我有两张桌子 表1 A-ID Name reg.id 100 shankar 11a 101 kumar 11b 102 Raj 11c 表2 A-ID B-ID Type create date update date 100 1 mail 03/01/17 03/01/2017 9.10 100 2 fax 03/01/17 03/01/2017 9.10 1

我有两张桌子

表1

A-ID    Name    reg.id
100     shankar 11a
101     kumar   11b
102     Raj     11c
表2

A-ID    B-ID    Type   create date  update date
100      1      mail    03/01/17    03/01/2017 9.10
100      2      fax     03/01/17    03/01/2017 9.10
100      3      phone   03/01/17    03/01/2017 9.11
100      4      phone   03/02/17    03/02/2017 10.00
100      5      fax     03/02/17    03/02/2017 10.01
100      6      mail    03/02/17    03/02/2017 10.01
100      7      phone   03/02/17    03/02/2017 10.02
101      4      phone   03/02/17    03/02/2017 10.00
101      5      fax     03/02/17    03/02/2017 10.02
101      6      mail    03/02/17    03/02/2017 10.03
这里是A-ID,外键。“Type”值将在同一天内多次插入,但每次插入更新的GMT时都会插入当前时间戳,如本例中的“Type”电话,用于在“03/02/2017 10.00”和“03/02/2017 10.02”插入100。 但我只想在这里插入“2017年2月3日10.02”这一天的最新信息。这同样适用于其他“类型”值传真和电子邮件。。但是最近的某一天的条目应该被提取为只发布一次

我想要这样的结果

create date A-ID    reg.id  Type    update date
03/02/17    100     11a     phone   03/02/2017 10.02
03/02/17    100     11a     fax     03/02/2017 10.01
03/02/17    100     11a     mail    03/02/2017 10.01
03/02/17    101     11b     phone   03/02/2017 10.00
03/02/17    101     11b      fax    03/02/2017 10.02
03/02/17    101     11b     mail    03/02/2017 10.03

请帮助我编写内部查询

Oracle/DB2支持windows函数
row_number()(按
分区),因此您可以使用

select * from 
(select 
t.*,row_number() over (partition by A-ID,Type order by "update date" desc) rn
from Table2 t
) t2
left join Table1 t1
on t2.A-ID=T1.A-ID
where t2.rn=1
选择B.[创建日期],A.[A-ID],A.[reg.ID],B.[更新日期]
来自表1 A
内连接表2b
在本机SQL中的A.A-ID=B.A-ID上:

SELECT  CREATE_DATE
        ,A_ID
        ,REG_ID
        ,TYPE
        ,MAX(UPDATE_DATE)
FROM TABLE_1 A,TABLE_2 B
WHERE A.A_ID= B.A_ID
GROUP BY CREATE_DATE
        ,A_ID
        ,REG_ID
        ,TYPE

它是mysql/oracle还是db2?我更喜欢Db2Prefer with?您有在任何数据库中运行它的选项吗?JSR批处理中db2查询的最终实现。因此,我只希望在db2中使用它。我将删除其他标记。我添加其他标记只是为了理解逻辑。但我只希望在db2中使用它。好的。检查给出的答案并在中对它们进行注释如果你有任何疑问。这是如何给出OP的解决方案的?他不只是想加入两个表。了解预期的结果,然后看看如何实现它。