尝试根据完成时间对推断分数进行动态求和

时间:2019-05-26 15:58:05

标签: sql self-join points

我正在使用SQL Server(Azure DB)

我想创建一个查询,该查询返回基于每个团队每个事件完成的数据的分数。我想使用来自较早问题的相同最快求解数据来帮助区分和加权评分系统。

带有查询的原始问题,可返回每个事件的第一,第二和第三最快的解决方案-SQL Self Join with Summing and Top 3 Columns

每个团队的结果将有一行。如果他们没有完成任何事件,则其分数将为零;如果他们最后一次完成所有事件,则其分数将与事件数相同。对于每项赛事,他们最快完成第一名或第二名将获得额外的积分。

表/视图为:

TourmamentID  INT
EventID INT
EventName NVARCHAR(50)
TeamID INT
TeamName NVARCHAR(50)
EventStart Datetime
TeamEnd Datetime
iscomplete bit

这是视图中的示例数据。

TournamentID, EventName, TeamName, EventStart, TeamEnd, iscomplete     
---------- --------  ----------  -------  ---------     -------    
1             E1           T1       sqldate     sqldate    1    
1             E2           T1       sqldate     sqldate    1    
1             E1           T2       sqldate     sqldate    1
1             E2           T2       sqldate     sqldate    1
1             E1           T3       sqldate     sqldate    1
2             E1           T1       sqldate     null       null
2             E1           T2       sqldate     sqldate    1
2             E2           T2       sqldate     sqldate    1
3             E1           T3       sqldate     null       null

结果可能类似于:

Team    Total events completed   Total Score
-----   ----------------         --------------
T1             2                     4
T2             4                     4
T3             1                     2  

第一个最快完成的人将获得3分。第二名和第二名分别获得2分和第三名及以下获得1分。

0 个答案:

没有答案