详解力扣高频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);
相关推荐
阿里云大数据AI技术1 天前
用 SQL 调大模型?Hologres + 百炼,让数据开发直接“对话”AI
sql·llm
琢磨先生David6 天前
Day1:基础入门·两数之和(LeetCode 1)
数据结构·算法·leetcode
tryCbest6 天前
数据库SQL学习
数据库·sql
jnrjian6 天前
ORA-01017 查找机器名 用户名 以及library cache lock 参数含义
数据库·oracle
超级大福宝6 天前
N皇后问题:经典回溯算法的一些分析
数据结构·c++·算法·leetcode
Charlie_lll6 天前
力扣解题-88. 合并两个有序数组
后端·算法·leetcode
菜鸡儿齐6 天前
leetcode-最小栈
java·算法·leetcode
TTc_6 天前
oracle中的union和union all有什么区别?
数据库·oracle
cowboy2586 天前
mysql5.7及以下版本查询所有后代值(包括本身)
数据库·sql
Frostnova丶6 天前
LeetCode 1356. 根据数字二进制下1的数目排序
数据结构·算法·leetcode