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

如何用SQL获取fz_1最小值对应的ry_1最大值?

解决方法

你需要的是关联两列的逻辑:先锁定fz_1取最小值的所有行,再从中找ry_1的最大值,以下几种SQL写法都能实现:

方法一:子查询过滤(最直观)

先通过子查询得到fz_1的最小值,再筛选出所有fz_1等于该值的行,最后取ry_1的最大值:

SELECT MAX(ry_1) AS max_ry_at_min_fz
FROM your_table
WHERE fz_1 = (SELECT MIN(fz_1) FROM your_table);

方法二:分组后过滤

按fz_1分组,筛选出分组后fz_1等于全局最小值的组,同时返回该组的ry_1最大值(还能看到对应的fz_1最小值):

SELECT fz_1 AS min_fz, MAX(ry_1) AS max_ry_at_min_fz
FROM your_table
GROUP BY fz_1
HAVING fz_1 = (SELECT MIN(fz_1) FROM your_table);

方法三:窗口函数实现

用窗口函数先给每行标记全局的fz_1最小值,再筛选出符合条件的行并取ry_1最大值:

SELECT MAX(ry_1) AS max_ry_at_min_fz
FROM (
    SELECT ry_1, fz_1, MIN(fz_1) OVER() AS global_min_fz
    FROM your_table
) AS sub_query
WHERE fz_1 = global_min_fz;

为什么你的原语句不行?

SELECT min(fz_1), max(ry_1)是分别计算整个表中fz_1的最小值和ry_1的最大值,两者没有任何关联,自然得不到你想要的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 05:52:05