使用Retrosheet棒球数据

时间:2015-08-13 02:57:13

标签: mysql sql

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

2 个答案:

答案 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`