MYSQL 初学者 ORDER By - 只需要列中每个条目的最大值

标签 mysql

我正在尝试学习 MYSQL,以便我可以进行自己的棒球研究。到目前为止,我已经取得了成功,但事实证明,看似简单的查询很困难,而且我似乎找不到解决方案。

我正在尝试编写一个查询,该查询可以统计出每年 HR 命中率最高的人员。我的代码是:

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

这很接近我想要的,但给了我按时间顺序排列的每个玩家,而不是仅仅排名第一,然后是下一年。我确信我错过了一些明显的东西。

感谢您的帮助

最佳答案

您应该使用子选择来获取yearID和HR

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;

关于MYSQL 初学者 ORDER By - 只需要列中每个条目的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36140625/

相关文章:

mysql - 不能只显示多个交易的最大日期

mysql - 这个mysql where子句怎么写?

mysql - 尝试根据订单的明细列表按年/月查看客户的订单数量

mysql - 使用 SQL Join 从 1 列中的 2 个表获取名称 super 集

php - ajax加载mysql数据到多个div

PHP SQL 查询检查是否包含 INSERT

php - 如何在 UL 中对重复的表值进行分组?

mysql - 如何使用 C# Visual Studio 执行 MySql 存储过程

php - 打印多维数组 PHP

php - 查询不适用于表单验证器