我正在使用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分。