我正在尝试学习MYSQL,以便我可以进行自己的棒球研究。到目前为止,我已经取得了成功,但似乎一个简单的查询被证明是困难的,我似乎找不到解决方案。
我正试图写一个查询,吐出我们谁的人力资源在每年最多。我的代码是:

SELECT
    playerID, teamID,
    yearID AS Year,
    MAX(HR) AS MaxHR
FROM
    Batting
GROUP BY
    yearID, playerID, teamID
ORDER BY
    yearID DESC, MAXHR DESC;

这接近于我想要的,但是给了我每个球员一年一年的时间顺序,而不仅仅是1岁,然后是下一年。我肯定我漏掉了一些显而易见的东西。
谢谢你的帮助

最佳答案

你应该使用子选择来获取年号和人力资源

SELECT playerID,
       teamID,
       yearID AS Year,
       HR AS MaxHR
      FROM Batting
WHERE (yearID, HR) in (select yearID, max(hr)
                         from batting group by yearID)
ORDER BY yearID DESC, MAXHR DESC;

10-08 19:56