力扣刷题SQL-619. 只出现一次的最大数字

这篇具有很好参考价值的文章主要介绍了力扣刷题SQL-619. 只出现一次的最大数字。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

MyNumbers 表:

+-------------+------+
| Column Name | Type |
+-------------+------+
| num         | int  |
+-------------+------+
这张表没有主键。可能包含重复数字。这张表的每一行都含有一个整数。

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

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

查询结果如下例所示。

示例 1:

输入:
MyNumbers 表:88331456
输出:
+-----+
| num |
+-----+
| 6   |
+-----+
解释:单一数字有 1、4、5 和 6 。
6 是最大的单一数字,返回 6 。
示例 2:

输入:
MyNumbers table:8877333
输出:
+------+
| num  |
+------+
| null |
+------+
解释:输入的表中不存在单一数字,所以返回 null 。

我敏捷的头脑快速旋转,大概有了个思路:

1.根据num分组

2.计算分组内记录数量等于1

3.从高到低排序

4.取第一条记录

然后快速写了一版错误答案,如下所示:

select * from mynumbers
group by num
having count(num)=1
order by num desc
limit 1

炸裂。。。。当不存在单一数字,我的输出为空,而不是null。

后来百度才知道,只有select和某些函数,输出为空的时候才会输出null。而limit正好就是不输出为null,直接输出为空的那个函数。

于是我想到了一种解法:

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

然后看了别人的解题思路。

感谢力扣大神【退堂鼓一级表演艺术家】总结的表格:

力扣刷题SQL-619. 只出现一次的最大数字,数据库,sql,数据库

这是另外一种写法:文章来源地址https://www.toymoban.com/news/detail-603446.html

select max(num) num from 
(
  select num from mynumbers
  group by num
  having count(num)=1
) as t

到了这里,关于力扣刷题SQL-619. 只出现一次的最大数字的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 力扣(LeetCode)算法_C++—— 只出现一次的数字

    给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。 示例 1 : 输入:nums = [2,2,1] 输出:1 示例 2 : 输入:nums = [4,

    2024年02月09日
    浏览(9)
  • 力扣刷题SQL-584. 寻找用户推荐人,解题思路及2种解法

    给定表 customer ,里面保存了所有客户信息和他们的推荐人。 +------+------+-----------+ | id   | name | referee_id| +------+------+-----------+ |    1 | Will |      NULL | |    2 | Jane |      NULL | |    3 | Alex |         2 | |    4 | Bill |      NULL | |    5 | Zack |         1 | |    6 | Mark |      

    2024年02月16日
    浏览(10)
  • 【力扣·每日一题】2085.统计出现过一次的公共字符串(模拟 哈希表 优化 C++ Go)

    【力扣·每日一题】2085.统计出现过一次的公共字符串(模拟 哈希表 优化 C++ Go)

    题目链接 给你两个字符串数组 words1 和 words2 ,请你返回在两个字符串数组中 都恰好出现一次 的字符串的数目。 输入:words1 = [“leetcode”,“is”,“amazing”,“as”,“is”], words2 = [“amazing”,“leetcode”,“is”] 输出:2 解释: “leetcode” 在两个数组中都恰好出现一次,计入答

    2024年01月21日
    浏览(13)
  • 【力扣刷题 | 第十五天】

    【力扣刷题 | 第十五天】

    目录 前言:  ​​​​​​​63. 不同路径 II - 力扣(LeetCode) 343. 整数拆分 - 力扣(LeetCode) 总结:         本篇我们主要刷动态规划的题,解题还是严格按照我们在【夜深人静写算法】栏目下的解题步骤,大家如果没学过动态规划的可以先看看我写的动态规划文章介绍。

    2024年02月15日
    浏览(11)
  • 力扣刷题 - 数组篇

    力扣刷题 - 数组篇

    https://leetcode.cn/problems/max-consecutive-ones/ 暴力解法: 定义一个变量来统计是否连续 https://leetcode.cn/problems/teemo-attacking/ 暴力解法: 记录每次中的开始时间与结束时间, 然后如果下一次中毒的是在结束时间之前, 就去更新开始时间(让它加上这个持续时间减去结束时间),如果是在之后

    2024年02月16日
    浏览(11)
  • 力扣刷题【第一期】

    力扣刷题【第一期】

    1.爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 2.求两数的和(283) 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下

    2024年02月07日
    浏览(14)
  • 力扣刷题19天

    力扣刷题19天

             这道题下面是前提:                                           如果没有这个前提,会出现下面情况(前序遍历会变成新的树):         运行代码:           下面代码中出现的问题:         和上面那道题逻辑一样。         运行代码:          

    2024年02月04日
    浏览(14)
  • 【力扣刷题 | 第十三天】

    【力扣刷题 | 第十三天】

    今天随机进行练习,题型上不会有什么限制,主要还是练习STL算法。 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。 注意:最终,合并

    2024年02月10日
    浏览(8)
  • 力扣刷题笔记

    诸神缄默不语-个人CSDN博文目录 我以前刷过一波力扣,然后全忘了……从0开始的力扣复活赛! 以前刷题用的是Java,现在Java几乎忘光了,所以现在是Python 3 + Java双语选手。 以下题目按照力扣官方顺序排列。 449. 序列化和反序列化二叉搜索树 1281. 整数的各位积和之差 1749. 任意

    2024年02月14日
    浏览(6)
  • 【力扣刷题 | 第七天】

    【力扣刷题 | 第七天】

    今天我们将会进入栈与队列的刷题篇章,二者都是经典的数据结构,熟练的掌握栈与队列实现可以巧妙的解决有些问题。 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类: void push(int x) 将元素 x 推到队列的

    2024年02月09日
    浏览(6)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包