我正在使用Retrosheet data对棒球统计数据进行一些SQL查询。
我能够做出一个能够很好地恢复个人表现的查询。下面的示例查看Roger Clemens GAME_ID
出现的所有游戏clemr001
,并记录了一个删除线EVENT_CD = '3'
。每个事件都是数据库中自己的行,因此我将删除事件分组并计算起来。
SELECT `GAME_ID` AS 'Game',`PIT_ID` AS 'Pitcher',COUNT(*) AS 'Strikeouts'
FROM `events`
WHERE `PIT_ID` = 'clemr001'
AND `EVENT_CD` = '3'
GROUP BY `GAME_ID`
ORDER BY COUNT(*) DESC;
结果是这样的事情:
Game Pitcher Strikeouts
DET199609180 clemr001 20
BOS198604290 clemr001 20
TOR199808250 clemr001 18
etc...
我的问题是创建一个SQL查询,它将返回每个游戏中每个投手的三振出局次数。
首选结果如下表所示,其中结果按游戏分组,但使用删除线事件代码计算每个投球表现。
Game Pitcher Strikeouts
DET199609180 clemr001 20
DET199609180 bluev001 19
DET199609180 peavj001 2
NYN196405312 rheij001 9
NYN196405312 garcj004 5
NYN196405312 wilsd102 3
答案 0 :(得分:0)
基本上是这样的吗?
以下代码应选择所有游戏,投手和三振出局,按游戏ID分组并按三振出局排序。
SELECT `GAME_ID` AS 'Game',`PIT_ID` AS 'Pitcher',COUNT(*) AS 'Strikeouts'
FROM `events`
WHERE `EVENT_CD` = '3'
GROUP BY `GAME_ID`, `PIT_ID`
ORDER BY COUNT(*) DESC;
答案 1 :(得分:0)
你只需要:
GROUP BY `GAME_ID`, `PIT_ID`