IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 《找到遗失的ID》LeetCode Plus 会员专享题【详细解析】Hive / MySQL -> 正文阅读

[数据结构与算法]《找到遗失的ID》LeetCode Plus 会员专享题【详细解析】Hive / MySQL

大家好,我是老吴,大家也可以叫我吴同学,再小一点的朋友也可以叫我吴师兄。欢迎大家跟我一起走进数据分析的世界,一起学习!

感兴趣的朋友可以关注我的数据分析专栏,里面有许多优质的文章跟大家分享哦。
另外也欢迎大家关注我的SQL刷题专栏,里面有我分享的高质量SQL题,以及详细的解析。


本篇博文又是我的SQL题分享环节,为了记录一下自己的做题过程,以及防止后续力扣会员过期无法再次查看题目,所以我每天都会给大家选出一道质量较高的SQL题目发表到博客上,希望在记录的同时,对大家也能有所帮助。

那么今天给大家分享的题是LeetCode的第1613题——找到遗失的ID

下面是问题的详细描述。

问题描述

Customer

+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| customer_id   | int     |
| customer_name | varchar |
+---------------+---------+

customer_id 是该表主键。
该表第一行包含了顾客的名字和id。

写一个 SQL 语句,?找到所有遗失的顾客id.?遗失的顾客id是指那些不在?Customers?表中,?值却处于?1?和表中最大?customer_id?之间的id.

注意:?最大的?customer_id?值不会超过?100.

返回结果按?ids 升序排列

查询结果格式如下例所示:.

Customers 表:
+-------------+---------------+
| customer_id | customer_name |
+-------------+---------------+
| 1           | Alice         |
| 4           | Bob           |
| 5           | Charlie       |
+-------------+---------------+

Result 表:
+-----+
| ids |
+-----+
| 2   |
| 3   |
+-----+

表中最大的customer_id是5, 所以在范围[1,5]内, ID2和3从表中遗失.

解题思路

  1. 先找到最大值,然后生成对应数量的字段
  2. 如最大值为5,则生成五行数据,数值从1到5
  3. 之后判断哪些值不在customers表中(这里不用not in,用left join,这样子在hive中也能执行)
  4. 所以关键在于如何创建临时表

代码实现

with tmp t as
(select 1 as n
    union all
    select n+1 from t where n<(select max(customer_id) from customers)
)

select 
    t.n as ids
from t left join Customers c on t.n=c.customer_id
where c.customer_id is null

结束语

看完这篇,还有更多知识点分享给你哦,自己慢慢找哈,就在下面链接。


推荐关注的专栏

👨?👩?👦?👦 机器学习:分享机器学习实战项目和常用模型讲解
👨?👩?👦?👦 数据分析:分享数据分析实战项目和常用技能整理

往期内容回顾

💚 学习Python全套代码【超详细】Python入门、核心语法、数据结构、Python进阶【致那个想学好Python的你】
?? 学习pandas全套代码【超详细】数据查看、输入输出、选取、集成、清洗、转换、重塑、数学和统计方法、排序
💙 学习pandas全套代码【超详细】分箱操作、分组聚合、时间序列、数据可视化
💜 学习NumPy全套代码【超详细】基本操作、数据类型、数组运算、复制和试图、索引、切片和迭代、形状操作、通用函数、线性代数


关注我,了解更多相关知识!

CSDN@报告,今天也有好好学习

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-12-13 13:06:58  更:2021-12-13 13:07:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 15:37:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码