繁体   English   中英

如何解决此MySQL查询?

[英]How can I fix this MySQL query?

我想回答这个问题:从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;

我怎样才能解决这个问题?

用这个:

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

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

您需要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”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM