详解力扣高频SQL50题之619. 只出现一次的最大数字【简单】

传送门:619. 只出现一次的最大数字

题目

MyNumbers 表:

±------------±-----+

| Column Name | Type |

±------------±-----+

| num | int |

±------------±-----+

该表可能包含重复项(换句话说,在SQL中,该表没有主键)。

这张表的每一行都含有一个整数。

单一数字 是在 MyNumbers 表中只出现一次的数字。

找出最大的 单一数字 。如果不存在 单一数字 ,则返回 null 。

查询结果如下例所示。

示例 1:

输入:

MyNumbers 表:

±----+

| num |

±----+

| 8 |

| 8 |

| 3 |

| 3 |

| 1 |

| 4 |

| 5 |

| 6 |

±----+

输出:

±----+

| num |

±----+

| 6 |

±----+

解释:单一数字有 1、4、5 和 6 。

6 是最大的单一数字,返回 6 。

示例 2:

输入:

MyNumbers table:

±----+

| num |

±----+

| 8 |

| 8 |

| 7 |

| 7 |

| 3 |

| 3 |

| 3 |

±----+

输出:

±-----+

| num |

±-----+

| null |

±-----+

解释:输入的表中不存在单一数字,所以返回 null 。

解析

显然用group by+count()+max(),但是注意group by+count()得到的是在组内的数字而不是全部数字,不能直接用max(),得再嵌套一层查询再用。

代码(标准SQL)

sql 复制代码
select max(num)as num
from(select *
from MyNumbers
group by num
having count(*)=1);
相关推荐
圣保罗的大教堂30 分钟前
leetcode 1266. 访问所有点的最小时间 简单
leetcode
源代码•宸1 小时前
Leetcode—85. 最大矩形【困难】
经验分享·算法·leetcode·职场和发展·golang·单调栈
lkbhua莱克瓦242 小时前
进阶-SQL优化
java·数据库·sql·mysql·oracle
石小千2 小时前
Myql binlog反向解析成sql
数据库·sql
Swift社区2 小时前
LeetCode 472 连接词
算法·leetcode·职场和发展
Dream it possible!2 小时前
LeetCode 面试经典 150_二分查找_搜索旋转排序数组(114_33_C++_中等)
c++·leetcode·面试
摩西蒙3 小时前
阿里云 MaxCompute(原 ODPS)定时任务查询库存快照场景
java·大数据·sql·database
狐573 小时前
2026-01-12-LeetCode刷题笔记-1266-访问所有点的最小时间.md
笔记·算法·leetcode
瑞雨溪4 小时前
力扣题解:740.删除并获得点数
算法·leetcode·职场和发展
鲨莎分不晴4 小时前
给 Hadoop 插上 SQL 的翅膀:Apache Hive 架构与实战全解
hadoop·sql·apache