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

如何在不分组的情况下获取某列最小值并返回对应行其他列数据?

无分组获取最小值对应全字段记录的实现方法

不需要对字段做分组操作,两种写法都能实现需求,直接拿到最小值对应记录的其余字段数据。

写法1:窗口函数写法(推荐,大数据量场景效率更高)

用RANK()窗口函数直接按目标最小值列升序排序打排名标记,不需要做分组聚合,还能自动保留所有同最小值的匹配记录,不会丢数。
假设你的业务表名为target_table,需要取最小值的目标列名为min_col,查询语句如下:

SELECT month, col1, min_col, col2
FROM (
    SELECT
        *,
        RANK() OVER (ORDER BY min_col ASC) as row_rank
    FROM target_table
) temp
WHERE row_rank = 1;

写法2:简单子查询写法

如果场景逻辑简单,不需要后续扩展其他排序规则,直接嵌套取最小值做等值匹配即可,写法更简洁:

SELECT * FROM target_table
WHERE min_col = (SELECT MIN(min_col) FROM target_table);

两种写法都会返回所有匹配最小值的记录,不会只返回单条结果。用你给出的示例数据执行后,返回结果完全符合预期:

  • January, 24, 0, 3
  • February, 12, 0, 1

内容的提问来源于stack exchange,提问作者K.R.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 11:33:40