【发布时间】:2012-09-19 11:02:35
【问题描述】:
我有一个具有以下架构的板球数据库:
Bowl(BowlID, MatchID, Striker, Non-Striker, Bowler, Runs, OverNum)
- Stores info for every ball
Match(MatchID, Team1, Team2, Date)
- Stores all the matches
我正在尝试计算一场比赛的倒数第二个球中有多少百分比得分。
所以首先我需要拿到每场比赛的倒数第二个球。我真的不知道该怎么做。 OverNum 列存储了球号,因此对于 2020 场比赛,这将从“0.1”开始到“19.6”(假设他们坚持了几局)。
会不会是这样的:
SELECT MatchID, MAX(OverNum)
FROM Bowl
WHERE OverNum
NOT IN (SELECT Max(OverNum) FROM Bowl)
GROUP BY MatchID
我无法确保它从每场比赛中获得倒数第二,而不是从整个碗桌中获得第二高的 OverNum...
【问题讨论】:
-
你怎么知道比赛是 20-over 一还是 50-over 一?
-
你的内部选择语句应该是:
(SELECT Max(OverNum) FROM Bowl b2 WHERE b2.MatchID = MatchID)