SQL使用DISTINCT和MAX查询每个唯一字符串对应的最大值
实现方案
你要的需求本质是按column_1分组后求每组的column_2最大值,有两种常见实现方式:
方式1:用GROUP BY实现(最常用,性能更好)
SELECT column_1, MAX(column_2) AS column_2 FROM 替换成你的实际表名 GROUP BY column_1;
逻辑说明:GROUP BY column_1会自动将column_1取值相同的行归为同一组,MAX()聚合函数会计算每个分组内column_2的最大值,最终返回的行数刚好和column_1的唯一值数量一致,完全匹配你的预期结果。
方式2:结合DISTINCT + 窗口函数实现(符合你提到的要用DISTINCT和MAX的要求)
SELECT DISTINCT column_1, MAX(column_2) OVER (PARTITION BY column_1) AS column_2 FROM 替换成你的实际表名;
逻辑说明:MAX(column_2) OVER (PARTITION BY column_1)是窗口函数语法,会按column_1分区,给每个分区内的所有行都生成分区对应的column_2最大值,再通过DISTINCT对重复的行去重,最终得到目标结果。
内容的提问来源于stack exchange,提问作者Ferre_Diego
相关产品推荐
相关产品推荐

