我该如何修复这个MySQL查询?

时间:2015-07-26 14:17:17

标签: mysql

我想回答这个问题:在1962年至2015年的每一年中,纽约大都会遇到了最多的本垒打。在我的结果中,我希望看到玩家的名字,本垒打的数量以及年份。但在我的结果中,我得到了错误的球员名字。

以下是我得到的结果:

1962年andercr01 34 1963年andercr01 17 1964年altmage01 20 1965年bearnla01 19     等等。

以下是我的问题:

SELECT yearID, playerID, MAX(HR) as maxHR
FROM Batting
WHERE teamID='NYN'
GROUP BY yearID;

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

使用此:

SELECT yearID, playerName, MAX(HR) as maxHR
FROM Batting
WHERE teamID='NYN'
GROUP BY yearID;

您没有在原始查询中选择玩家名称。

答案 1 :(得分:0)

您需要join

SELECT b.*
FROM Batting b JOIN
     (SELECT yearID, teamID, MAX(HR) as maxHR
      FROM Batting
      WHERE teamID = 'NYN'
      GROUP BY yearID, teamId
     ) bb
     ON bb.yearId = b.yearId and bb.teamId = b.teamId and bb.maxHR = b.HR;

注意:这将在两个玩家具有相同最大数量HR的年份中提供重复。

另外,我希望纽约大都会队的缩写是" NYM"而不是" NYN"。