MySQL - 子查询的 max( ) 行值

标签 mysql subquery max

我有一个表,其中每 15 分钟记录一次降雨量,因此一天的总降雨量是 95 条记录中的“雨量”之和。以下查询正确返回日期列表和当天的降雨量。

select thedate as tdate,sum(rain) as dailyrain
from  weatherdata
group by year(thedate), month(thedate), day(thedate)

(日期存储为日期时间,雨存储为整数)

我现在想将其作为子查询并返回出现最大降雨量的日期。

我下面的查询正确返回了最大降雨量,但没有返回与该降雨相关联的正确日期。

select maxdate,max(dailyrain) from (select thedate as maxdate,sum(rain) as dailyrain
from  weatherdata
group by year(thedate), month(thedate), day(thedate)) as maxrain

我想我可能必须使用 JOIN。我知道这里已经回答了许多类似的问题,但我无法完全正确地使用语法来完成这项工作。任何帮助将不胜感激。

最佳答案

SELECT DATE(thedate) as tdate, sum(rain) as dailyrain
FROM weatherdata
GROUP BY DATE(thedate)
ORDER BY sum(rain) DESC, DATE(thedate) DESC
LIMIT 1 ;

或:

SELECT DATE(thedate) as tdate, sum(rain) as dailyrain
FROM weatherdata
GROUP BY DATE(thedate)
ORDER BY dailyrain DESC, tdate DESC
LIMIT 1 ;

关于MySQL - 子查询的 max( ) 行值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21056685/

相关文章:

java - 尝试在java中打印arraylist的最大值

mysql - 迷失 MySQL

php - 查询错误得不到数字

php - 从 MySQL 数据库中选择正确的选择选项

mysql - 测量 mysql 5.7.* 中 group by 子句的性能

C++,在数组中找到 3 个最大值,其中这些值之间的差异是参数之一

python - 如何从数据库数据中取平均值?类型错误 : unsupported operand type(s) for/: 'Decimal' and 'float'

mysql - 分组依据将最旧和最新的日期放入一行

mysql - MariaDB 列存储 : Filtering SubQuery by Computed Value

mysql select MAX 但显示不符合预期