mysql - 选择按年份分组的最大值

标签 mysql sql

考虑到我有下表

WindDirection | WindSpeed | Date
            W |       12  | 17/01/14
          NNW |       20  | 20/02/14
           SE |       15  | 30/04/14
          ENE |       25  | 21/06/15
          NNE |       23  | 10/12/15
          WSW |       8   | 07/01/15
            S |       19  | 05/06/15

如何获得每年的最大值? 我想实现这个

Year | WindSpeed | WindDirection
2014 |        20 |           NNW
2015 |        25 |           ENE

这是我的查询,它不起作用,只是让你有一个想法

SELECT CONCAT("20", SUBSTRING(`Date`, -2)) AS `Year`, `WindSpeed`, `WindDirection`
FROM `weather`
WHERE `WindSpeed` = (SELECT MAX(`WindSpeed`) 
                     FROM `weather`)
GROUP BY `Year` DESC

提前致谢!

最佳答案

你可以使用下面的查询

SELECT  B.Year ,
    WindSpeed ,
    A.WindDirection
FROM    weather A
    INNER JOIN ( SELECT YEAR ,
                        MAX(WindSpeed) AS WindSpeed
                 FROM   ( SELECT    YEAR(Date) AS YEAR ,
                                    WindSpeed ,
                                    WindDirection
                          FROM      weather
                        ) A
                 GROUP BY YEAR
               ) b ON A.WindSpeed = b.WindSpeed
                      AND B.YEAR = YEAR(A.Date)

关于mysql - 选择按年份分组的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47773232/

相关文章:

php - Laravel Eloquent HasOne::$id 未定义属性

Mysql:计算 db1.order_tbl、db2.order_tbl、...、dbN.order_tbl 中的订单总数?

python - 使用 sqlalchemy orm 从查询创建临时表

sql - 带连接和不带连接的选择之间的区别

php - 根据 wordpress 中的 meta_value 对 POST 进行排名 [示例 : "Ranked 3 out of 12 post"]

java - 从 mysql 检索数据并将其放入 JTables

java - Netbeans 结构问题

mysql - 用户定义的变量出现问题

更新前mysql触发器发生变化

sql - 基于unix时间戳聚合数据创建数据库