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

LeetCode 619:最大唯一数MySQL查询问题求助

解决LeetCode 619《最大的唯一数字》SQL查询错误问题

你的查询问题出在分组后直接对每个组取最大值:
当你用GROUP BY num时,每个仅出现一次的num会被分成单独的组,此时对每个组执行MAX(num),得到的就是该组本身的num值——所以最终会返回所有符合“仅出现一次”的数字,而不是这些数字里的最大值。

正确写法1:子查询+外层取最大值

先筛选出所有仅出现一次的数字,再在外层查询中取它们的最大值:

SELECT MAX(num) AS num
FROM (
    SELECT num
    FROM MyNumbers
    GROUP BY num
    HAVING COUNT(num) = 1
) AS single_nums

这种写法天然满足题目要求:如果没有符合条件的数字(所有数字都重复),外层MAX会返回NULL。

正确写法2:窗口函数(MySQL 8.0+)

用窗口函数计算所有符合条件数字的最大值,再去重取结果:

SELECT DISTINCT MAX(num) OVER() AS num
FROM MyNumbers
GROUP BY num
HAVING COUNT(num) = 1
LIMIT 1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 04:22:01