Tsql 我需要找到第n个实例
我正在编写一个T-SQL数据库来帮助我识别足球统计数据的趋势 每场比赛我都有几行数据,每一行表示一个事件,比如一个进球或一个角球 我正在努力找出每场比赛谁能赢得3、5、7和9个角球 我甚至想不出一个方法来解决这个问题。有人能帮忙吗 我试过查看case语句和temp表,但就是找不到得到我想要的东西的方法 数据看起来像这样Tsql 我需要找到第n个实例,tsql,Tsql,我正在编写一个T-SQL数据库来帮助我识别足球统计数据的趋势 每场比赛我都有几行数据,每一行表示一个事件,比如一个进球或一个角球 我正在努力找出每场比赛谁能赢得3、5、7和9个角球 我甚至想不出一个方法来解决这个问题。有人能帮忙吗 我试过查看case语句和temp表,但就是找不到得到我想要的东西的方法 数据看起来像这样 Event Team Time (mins) corner home 32 corner home 78 corner away 86 corn
Event Team Time (mins)
corner home 32
corner home 78
corner away 86
corner home 12
corner away 89
corner away 36
所以我想找出第三,第五,第七和第九个例子,如果它们存在的话,每个主角和客场角都是一样的。因此,如果有意义的话,每个类别的两次比赛中较低的一次将赢得比赛
在上面的例子中,主队将赢得比赛,因为第三个角球发生在第78分钟,而第三个客场角球发生在第89分钟。通过此查询:
select e.*,
(select count(*) from events
where team = e.team and event = e.event and time < e.time) + 1 counter
from events e
order by e.time
你可以按时间顺序得到所有事件,每个事件都有一个计数器。您可以这样使用它:
select top 1 t.team
from (
select e.*,
(select count(*) from events
where team = e.team and event = e.event and time < e.time) + 1 counter
from events e
) t
where event = 'corner' and counter = 3
order by t.time
获得三个角球的获胜队伍。
有关此查询,请参见。:
select e.*,
(select count(*) from events
where team = e.team and event = e.event and time < e.time) + 1 counter
from events e
order by e.time
你可以按时间顺序得到所有事件,每个事件都有一个计数器。您可以这样使用它:
select top 1 t.team
from (
select e.*,
(select count(*) from events
where team = e.team and event = e.event and time < e.time) + 1 counter
from events e
) t
where event = 'corner' and counter = 3
order by t.time
获得三个角球的获胜队伍。
请参见主队的。类似内容: 从您的_表行中选择前9*,按时间排序为RowNum,其中RowNum=3或RowNum=5或RowNum=7或RowNum=9,团队='Home'
你会为客队创造类似的东西…像这样的东西为主队: 从您的_表行中选择前9*,按时间排序为RowNum,其中RowNum=3或RowNum=5或RowNum=7或RowNum=9,团队='Home'
你会为客队创造类似的东西…绝对的超级明星。非常感谢你!为了这个,我整晚都在纠结!!!如果这解决了你的问题,考虑接受这个答案绝对超级巨星。非常感谢你!为了这个,我整晚都在纠结!!!如果这解决了你的问题,考虑接受这个答案。