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

如何在SQL中按条件查询,获取同ID下最大status key对应的行

需求实现SQL方案

假设你的表名为your_table,包含id、status_key两列,可根据实际场景替换为你的真实表名、列名。

方案1:窗口函数(适配所有支持标准SQL的现代数据库,如MySQL 8.0+、PostgreSQL、Oracle等)

SELECT id, status_key
FROM (
    SELECT 
        id,
        status_key,
        -- 按ID分组,组内按status_key倒序排序,生成序号
        ROW_NUMBER() OVER (PARTITION BY id ORDER BY status_key DESC) AS rn
    FROM your_table
) t
WHERE rn = 1;
  • 备注:如果同一个ID下存在多条status_key为最大值的记录,要全部返回可将ROW_NUMBER()替换为RANK()。

方案2:子查询关联(兼容MySQL 5.x等不支持窗口函数的旧版本数据库)

SELECT t1.id, t1.status_key
FROM your_table t1
INNER JOIN (
    -- 先查出每个ID对应的最大status_key
    SELECT id, MAX(status_key) AS max_status
    FROM your_table
    GROUP BY id
) t2 ON t1.id = t2.id AND t1.status_key = t2.max_status;
  • 备注:该方案默认返回同一个ID下所有status_key等于最大值的记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 02:36:03