我在一个表中有一个足球结果列表,每一行都是一场比赛,并包含该比赛的所有数据,即 Home(team)、HomeGoals、AwayGoals、Away(team),我想循环浏览每场比赛,得到主队,查看他们最近 6 场比赛,并仅显示指定球队在最近 6 场比赛中至少有一场打进 4 球或以上的比赛。
我有以下代码创建一个表格,根据比赛日期按团队名称和每行编号进行分区,然后再次遍历表格并仅显示符合上述条件的比赛。
问题是我需要“Last6”表根据主查询中引用的游戏日期进行自我更新,以便从该日期获得最后 6 场比赛。目前,它只是从桌子上的最后一场比赛中获得最后 6 场比赛。
WITH Last6
AS (
SELECT Home
,HomeGoals
,ROW_NUMBER() OVER (
PARTITION BY Home ORDER BY Goals.DATE DESC
) GameNumber
FROM Goals
)
SELECT *
FROM Goals G
WHERE EXISTS (
SELECT NULL
FROM Last6
WHERE G.Home = Last6.Home
AND GameNumber <= 6
AND HomeGoals >= 4
)
有谁知道如何做到这一点?