SQL-每日一题【619.只出现一次的最大数字】

题目

MyNumbers 表:

SQL-每日一题【619.只出现一次的最大数字】_第1张图片

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

请你编写一个 SQL 查询来报告最大的 单一数字 。如果不存在 单一数字 ,查询需报告 null 。

查询结果如下例所示。

示例 1:

SQL-每日一题【619.只出现一次的最大数字】_第2张图片

SQL-每日一题【619.只出现一次的最大数字】_第3张图片 

示例 2:

SQL-每日一题【619.只出现一次的最大数字】_第4张图片 

 

解题思路

1.题目要求我们查找MyNumbers 表中只出现一次的最大的数字,题目相对来说比较简单,但是存在一个小坑!

2.首先我们对 num 进行分组并输出每一组的元素个数,筛选出元素个数等于一的num,这个筛选出的num就是我们的唯一数字,再对它进行降序排序后返回第一页的第一个元素,我们就可以得到只出现一次的最大的数字

3.到这里还没有结束!因为我们有可能查不到这个数字,也就是说表中不存在单一数字,但是我们又进行了条件限制(limit 1),那么行被删去就什么都不会返回,此时运行就会出错。这时我们只需要直接在内层select上套一层select,就可以自动在找不到的时候返回null。

代码实现

select 
(select num from MyNumbers 
group by num having count(num)=1 order by num desc limit 1) as num

运行结果

SQL-每日一题【619.只出现一次的最大数字】_第5张图片

 

你可能感兴趣的:(SQL每日一题,sql,数据库)