根据时间戳记间隔链接两个表

时间:2019-12-10 06:20:05

标签: sql data-science presto

我正在尝试连接如下所示的两个表:

A:

ID   |          Time        |   Mode
B121   2017-10-19 11:00:00     Processed
C232   2017-10-19 12:00:00     Cancelled
B121   2017-10-19 15:00:00     Cancelled
C455   2017-10-19 18:00:00     Processed
N776   2017-10-19 11:00:00     Processed

B:

ID   |          Time        
B121   2017-10-19 11:43:32    
C232   2017-10-19 12:00:00    
B121   2017-10-19 15:33:55    
C455   2017-10-19 18:31:33     
N776   2017-10-19 11:08:00     

我想基于将它们从表A添加到表B的“时间”和“模式”列 ID和时间列。

但是表A中的时间是基于每个小时的间隔,而表B中的时间是准确的时间。

我该怎么做?谢谢!

1 个答案:

答案 0 :(得分:2)

使用date_trunc()尝试以下逻辑,以实现所需的输出。通过在date_trunc()函数中使用“小时”作为参数,这会将日期时间转换为一个值,直到该值的小时。因此,条件最多只能检查“小时”值是否相同。

SELECT B.ID, B.Time, A.Time, A.Mode 
FROM B
INNER JOIN A
    ON B.ID = A.ID
    AND date_trunc(hour, B.Time) =  date_trunc(hour, A.Time)