SQL Server 查询:按月统计雨量数据,并获取单日最大值和对应日期

问题描述:

我的表结构 STCD 包含以下字段:

  • 主键
  • 国家统一测站编码
  • TM 数据接受日期 (格式:'yyyy-mm-dd hh:mm:00.000')
  • DRP 接收时间雨量值

现在我想要按月统计雨量数据,并显示每个月的单日最大值和最大值对应的日期。

解决方案:

SELECT 
    CONVERT(VARCHAR(7), TM, 120) AS Month,  -- 提取年月部分
    MAX(DRP) AS MaxDailyRainfall,  -- 单日最大值
    CONVERT(VARCHAR(10), MAX(TM), 120) AS DateOfMax,  -- 最大值对应的日期
    SUM(DRP) AS MonthlyRainfall  -- 月之和
FROM STCD
GROUP BY CONVERT(VARCHAR(7), TM, 120)

解释:

  1. 使用 CONVERT 函数将日期时间格式转换为年月格式,以便对数据进行按月分组。
  2. 使用 MAX 函数找出每个月的最大值,即单日最大值。
  3. 使用 CONVERT 函数将最大值对应的日期时间格式转换为日期格式,以便显示。
  4. 使用 SUM 函数计算每个月的雨量之和。

注意:

  • 这个查询结果中的日期格式为 'yyyy-mm-dd',而不是 'yyyy-mm-dd hh:mm:ss',因为在这种情况下,时间部分并不重要。如果您确实需要时间部分,请使用 MAX(TM) 函数而不是 CONVERT 函数。
SQL Server 查询:按月统计雨量数据,并获取单日最大值和对应日期

原文地址: https://www.cveoy.top/t/topic/oaHJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录