得到的头,我有以下架构板球数据库:SQL不能围绕逻辑
Bowl(BowlID, MatchID, Striker, Non-Striker, Bowler, Runs, OverNum)
- Stores info for every ball
Match(MatchID, Team1, Team2, Date)
- Stores all the matches
我试图找出什么是比赛的倒数第二球的百分比得分一定数量的运行。
所以首先我需要得到每场比赛的倒数第二球。我真的不知道该怎么做。 OverNum列存储球号码,所以对于二十二场比赛,这将从'0.1'开始并且上升到'19.6'(假设他们持续出局)。
难道是这样的:
SELECT MatchID, MAX(OverNum)
FROM Bowl
WHERE OverNum
NOT IN (SELECT Max(OverNum) FROM Bowl)
GROUP BY MatchID
我不能让我的头围绕确保它从每场比赛的倒数第二,而不是从整碗表中的第二高OverNum ...
你怎么知道一场比赛是20场还是50场? – Vikdor
您的内部select语句应该是:'(SELECT Max(OverNum)FROM Bowl b2 WHERE b2.MatchID = MatchID)' –