对于这句sql,不仅要查询最大值以及最大值对应的日期,还要分组查询,还是有点难度的,但也难不倒我,上才艺!
SELECT
t.upload_date as maxLevelDisplaceTime,
maxLevelDisplaceTable.maxLevelDisplace
FROM
reservoir_dam_displace_history t
INNER JOIN (
SELECT LEFT
( t2.upload_date, 10 ) AS dayDate,
MAX( t2.level_displace ) AS maxLevelDisplace
FROM
reservoir_dam_displace_history t2
GROUP BY
LEFT ( t2.upload_date, 10 )
) maxLevelDisplaceTable ON LEFT ( t.upload_date, 10 ) = maxLevelDisplaceTable.dayDate and maxLevelDisplaceTable.maxLevelDisplace = t.level_displace
GROUP BY
LEFT ( t.upload_date, 10 );
思路:
-
先查出没天的日期以及对应的最大值 ,类似下方数据
-
再根据日期与原表关联,相当于在原表中的条数据后面加上当天的最大值数据