我试图离开一个Notes表,以便用户在每天的特定时间将Notes上传到带有日期和时间的Score表中。日期必须相同,但是在Notes中,每次都需要选择比值小于/等于时间的最接近时间的匹配项。这是预期结果的示例:
答案 0 :(得分:0)
嗯,假设日期是相同的,数据爆炸可能不会那么糟糕。因此,进行联接,然后使用窗口函数进行过滤:
select sn.*
from (select s.*, n.n,
row_number() over (partition by s.date, s.time order by n.time desc) as seqnum
from scores s left join
notes n
on s.date = n.date and s.time >= n.time
) sn
where seqnum = 1;