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

如何从聚合表中查询获取每个月Total值最高的对应行记录

需求实现方案

我们假设你现有已过滤的聚合表表名为agg_table,可根据实际使用的SQL环境选择以下方案实现:

方案1:窗口函数实现(适配支持窗口函数的SQL环境,如MySQL 8.0+、PostgreSQL、Spark SQL、Hive等)

该方案是当前最常用的实现方式,可灵活处理排名规则:

WITH ranked_records AS (
    SELECT 
        Month,
        Days,
        Total,
        -- 按月分组,按Total从高到低排序生成序号
        ROW_NUMBER() OVER(PARTITION BY Month ORDER BY Total DESC) AS rank_num
    FROM agg_table
)
SELECT Month, Days, Total 
FROM ranked_records 
WHERE rank_num = 1;

说明:如果需要返回同月所有Total值并列最高的记录,将ROW_NUMBER()替换为RANK()即可。

方案2:子查询关联实现(适配不支持窗口函数的低版本SQL环境)

该方案兼容性更强,适配所有支持标准SQL的引擎:

SELECT t1.Month, t1.Days, t1.Total
FROM agg_table t1
INNER JOIN (
    -- 先查询得到每个月的最高Total值
    SELECT Month, MAX(Total) AS max_total
    FROM agg_table
    GROUP BY Month
) t2 ON t1.Month = t2.Month AND t1.Total = t2.max_total;

说明:该方案默认会返回同月所有Total值并列最高的记录,若需要仅返回一条,可根据业务需求额外补充排序、LIMIT等过滤逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 15:27:03