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

使用Pandas获取col1唯一值对应col3最大值及对应col2值

解决方案

假设你的数据结构如下(根据图片示例还原):

col1col2col3
AX10
AY20
BZ15
BW15
CV5

下面提供两种常用的实现方式:

方法一:使用窗口函数(推荐,适用于支持窗口函数的数据库:MySQL 8+、PostgreSQL、SQL Server等)

如果需要在多个相同最大值的行中仅保留一条(随机选择),用ROW_NUMBER():

SELECT col1, col2, col3 AS max_col3
FROM (
    SELECT 
        col1, col2, col3,
        ROW_NUMBER() OVER (PARTITION BY col1 ORDER BY col3 DESC) AS rn
    FROM your_table
) t
WHERE rn = 1;

如果需要保留所有col3等于最大值的行(比如上面B对应的Z和W都要),替换ROW_NUMBER()为RANK():

SELECT col1, col2, col3 AS max_col3
FROM (
    SELECT 
        col1, col2, col3,
        RANK() OVER (PARTITION BY col1 ORDER BY col3 DESC) AS rn
    FROM your_table
) t
WHERE rn = 1;

方法二:子查询关联(兼容旧版本数据库)

先分组获取每个col1对应的col3最大值,再关联原表匹配对应的col2:

SELECT t1.col1, t1.col2, t2.max_col3
FROM your_table t1
JOIN (
    SELECT col1, MAX(col3) AS max_col3
    FROM your_table
    GROUP BY col1
) t2 ON t1.col1 = t2.col1 AND t1.col3 = t2.max_col3;

注意:这种方式会返回所有col3等于最大值的行,如果要仅保留一条,需要额外处理(比如加DISTINCT或者结合排序取第一条,不同数据库语法略有差异)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 20:09:30