【发布时间】:2021-01-22 15:12:56
【问题描述】:
我正在寻找一个查询,以尝试在每个事件之前获取一组世界排名。这最终将用于线性回归模型,以查看预测事件结果与世界排名的准确性。注意。同一天可以有多个锦标赛。
【问题讨论】:
我正在寻找一个查询,以尝试在每个事件之前获取一组世界排名。这最终将用于线性回归模型,以查看预测事件结果与世界排名的准确性。注意。同一天可以有多个锦标赛。
【问题讨论】:
您可以使用lag() 获取每个事件之前 的时间段。然后join:
select e.*, r.*
from rankings r left join
(select e.*,
lag(event_date) over (order by event_date) as prev_event_date
from events e
) e
on r.ranking_date < event_date and
(r.ranking_date >= prev_event_date or prev_event_date is null)
【讨论】:
我认为 INNER JOIN 可以解决您的问题
SELECT E.Event, E.Event_Date, R.PlayerName, R.World_Ranking
FROM EVENTS_TABLE E
INNER JOIN RANKINGS_TABLE R on MONTH(E.Event_Date) = MONTH(R.Ranking_Date)
AND YEAR(E.Event_Date) = YEAR(R.Ranking_Date)
【讨论】: