我什至不确定这是否可以仅使用 SQL 来实现,但这里......
我在一个表中有一个足球结果列表,每一行都是一场比赛,包含那场比赛的所有数据,我想循环浏览每场比赛,得到主队,检查他们最近的 6 场比赛,只显示指定的比赛球队在最近 6 场比赛中有 50% 或更多的进球数达到或超过 2 个。
到现在为止,我只是不知道如何将它缝合在一起......
创建所有比赛的列表,只返回主队:
SELECT Date, Home
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 球或更多球,如果为真,则输出第一个查询中的行:
SELECT *
FROM last query
WHERE HomeGoals >= 2
ORDER BY Date DESC
为这个问题的粗鲁道歉,但我有点新手。