我正在尝试从表b查找唯一值并将其放入表a。 表b存储了随日期变化的多个值。 我想加入,但只从表b中获取具有最新日期的值。
Unique ID
1
2
Date Unique ID Price
01/01/2019 1 100
01/02/2019 1 101
01/03/2019 1 102
01/01/2019 2 90
01/02/2019 2 91
01/03/2019 2 92
预期结果
Unique ID Price Date
1 102 01/03/2019
2 92 01/03/2019
感谢您的帮助!
答案 0 :(得分:1)
具有一个子查询,该查询返回每个唯一ID及其最大日期。 IN
的结果。
select * from tablename
where (UniqueID, date) in (select UniqueID, max(date)
from tablename
group by UniqueID)
答案 1 :(得分:0)
您要相关子查询:
select b.*
from tableb b
where b.date = (select max(b1.date) from tableb b1 where b1.UniqueID = b.UniqueID);
如果您想使用JOIN
,则可以对子查询执行JOIN
:
select a.UniqueID , b.Price, b.Date
from tablea a inner join
tableb b
on b.UniqueID = a.UniqueID
where b.date = (select max(b1.date) from tableb b1 where b1.UniqueID = a.UniqueID);
答案 2 :(得分:0)
相关子查询?
select b.*
from b
where b.date = (select max(b2.date) from b b2 where b2.unique_id = b.unique_id);