A
user | dt | power |
a | 2022-01-01 | 10 |
a | 2022-01-03 | 5 |
a | 2022-01-04 | 15 |
a | 2022-01-05 | 14 |
B
user | dt | power |
a | 2022-01-01 | 10 |
a | 2022-01-02 | 10 |
a | 2022-01-03 | 5 |
a | 2022-01-04 | 15 |
a | 2022-01-05 | 14 |
a | 2022-01-06 | 14 |
a | 2022-01-07 | 14 |
A에 4개의 데이터만 있을때 B는 일자별로 데이터가 순차적으로 생성되고
A에 날짜가 매핑되는 power값을 가져오는데 해당 날짜가 없을경우 그 날짜 이전 가장 최근 데이터를 가져오려고 하는데 방법이 있을까요?
ㅇ B 테이블 user , dt 기준으로 최종 A테이블의 Power 정보를 취하는 SQL
아래는 해당 기준일의 A테이블의 최종일을 산출하고 , 해당 최종일의 power를 가져오는 것으로 구현해 보았습니다.
( 최종일 테이블 AA 는 A 테이블 자신 입니다. )
추신) 다를 여러가지 방법도 다양하게 많이있습니다. ^^
select B.user , b.dt ,
( select A.power from A
where A.user = b.user
and A.dt = ( select max(AA.dt) from AA where AA.user = B.user and AA.dt <= B.dt )
)
from B