0

我在一个表中有一个足球结果列表,每一行都是一场比赛,并包含该比赛的所有数据,即 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
    )

有谁知道如何做到这一点?

4

0 回答 0