You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查询每月单日Count字段的最大值记录

解决每月最大Count记录查询问题

直接按月份分组只能得到每月的最大Count值,但无法关联到对应的日期,这里提供两种常用的窗口函数解决方案:

方法1:使用ROW_NUMBER()获取唯一最大值记录

该方法会在同月有多个相同最大值时,按指定规则(比如日期倒序)选取其中一条记录:

SELECT "Date", "Count"
FROM (
    SELECT 
        "Date", 
        "Count",
        -- 按年月分区,Count降序、日期降序分配行号
        ROW_NUMBER() OVER (
            PARTITION BY DATE_TRUNC('month', "Date") 
            ORDER BY "Count" DESC, "Date" DESC
        ) AS rn
    FROM your_table
) t
WHERE rn = 1;

方法2:使用RANK()保留所有最大值记录

如果同月存在多条Count等于最大值的记录,该方法会返回全部符合条件的记录:

SELECT "Date", "Count"
FROM (
    SELECT 
        "Date", 
        "Count",
        -- 按年月分区,Count降序排名
        RANK() OVER (
            PARTITION BY DATE_TRUNC('month', "Date") 
            ORDER BY "Count" DESC
        ) AS rnk
    FROM your_table
) t
WHERE rnk = 1;

补充说明

  • DATE_TRUNC('month', "Date") 用于将日期截断到当月第一天,以此作为分组依据,避免跨年同月份的混淆;也可以用 EXTRACT(YEAR_MONTH FROM "Date") 替代,直接生成如202201这样的年月标识。
  • 窗口函数的PARTITION BY负责按月份分组,ORDER BY决定组内的排序规则,确保最大值排在最前面。

内容的提问来源于stack exchange,提问作者Owen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 20:33:26