我什至不确定这是否可以仅使用 SQL 来实现,但这里......
我在一个表中有一个足球结果列表,每一行都是一场比赛,并包含该比赛的所有数据,即 Home(team)、HomeGoals、AwayGoals、Away(team),我想循环浏览每场比赛,得到主队,查看他们最近的 6 场比赛并仅显示指定球队在最近 6 场比赛中 50% 或更多的进球数为 2 或更多的比赛。
到现在为止,我只是不知道如何将它缝合在一起......
创建所有比赛的列表,只返回主队:
SELECT *
FROM [FDATA].[dbo].[Goals]
ORDER BY Date
获取该球队的最后 6 场比赛:(我想对上述查询的每一行进行以下查询)
SELECT TOP 6 *
FROM [FDATA].[dbo].[Goals]
WHERE Home = '[Home] from first query' AND Date <= '[Date] from first query'
ORDER BY Date DESC
然后检查球队在返回的 6 场比赛中是否有 >= 50% 的球进了 2 球或更多球,如果为真,则输出第一个查询中的行。
所以基本上对于数据库中的每一行,我想找到该行(比赛)中主队的最后 6 场比赛,看看他们是否在 50% 或更多的比赛中进了 2 球或更多球,如果是,则输出原始行,如果不是,则从结果中省略该行。
可能吗?