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

SQL如何按指定条件筛选最大Draw值行,获取指定日期和路线的主导Zip数据

SQL实现按分组取最大值获取主导Zip

需求核心

按DelDate(交付日期)、Route(路线)分组,筛选每组内Draw值最高的完整行数据,即为对应分组的主导Zip记录。

实现方案

方案1:窗口函数实现(推荐,兼容MySQL8.0+、PostgreSQL、SQL Server、Oracle等主流数据库)

使用ROW_NUMBER()窗口函数对分组内数据按Draw倒序排名,取排名为1的记录即可:

WITH ranked_data AS (
    SELECT 
        DelDate,
        Plant,
        Route,
        Zip,
        City,
        State,
        Draw,
        -- 按日期+路线分组,同组内按Draw值从高到低排序
        ROW_NUMBER() OVER(PARTITION BY DelDate, Route ORDER BY Draw DESC) AS rank_num
    FROM 你的实际表名 -- 此处替换为你自己的表名
)
SELECT DelDate, Plant, Route, Zip, City, State, Draw
FROM ranked_data
WHERE rank_num = 1;

特殊场景说明:如果同组内存在多个Zip的Draw值相同且均为最大值,需要全部返回时,将ROW_NUMBER()替换为RANK()即可。

方案2:子查询关联实现(兼容低版本数据库,如MySQL5.x)

先分组查询出每个日期+路线对应的最大Draw值,再关联原表匹配完整行:

SELECT t1.*
FROM 你的实际表名 t1
INNER JOIN (
    SELECT DelDate, Route, MAX(Draw) AS max_draw
    FROM 你的实际表名
    GROUP BY DelDate, Route
) t2 
ON t1.DelDate = t2.DelDate 
AND t1.Route = t2.Route 
AND t1.Draw = t2.max_draw;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:54:03