当前位置: 首页 > news >正文

力扣刷MySQL-第五弹(详细讲解)

 🎉欢迎您来到我的MySQL基础复习专栏

☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克🍹
✨博客主页:小小恶斯法克的博客
🎈该系列文章专栏:力扣刷题讲解-MySQL
🍹文章作者技术和水平很有限,如果文中出现错误,希望大家能指正🙏
📜 感谢大家的关注! ❤️

​​

目录

🚀寻找用户推荐人

🚀下单最多的客户


🚀寻找用户推荐人

表: Customer

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| id          | int     |
| name        | varchar |
| referee_id  | int     |
+-------------+---------+
在 SQL 中,id 是该表的主键列。
该表的每一行表示一个客户的 id、姓名以及推荐他们的客户的 id。

找出那些 没有被 id = 2 的客户 推荐 的客户的姓名。

以 任意顺序 返回结果表。

结果格式如下所示。

示例 1:

输入: 
Customer 表:
+----+------+------------+
| id | name | referee_id |
+----+------+------------+
| 1  | Will | null       |
| 2  | Jane | null       |
| 3  | Alex | 2          |
| 4  | Bill | null       |
| 5  | Zack | 1          |
| 6  | Mark | 2          |
+----+------+------------+
输出:
+------+
| name |
+------+
| Will |
| Jane |
| Bill |
| Zack |
+------+

自己的思路:

1.这题算是很简单的题了

2.找没有被id=2的客户推荐过的人,重点我们就是看Customer表中的referee_id这个字段

3.没被2推荐过的,那就是只有1和null

4.我的想法是直接用where去过滤,那么我们要考虑where后面的条件是什么?

5.应该就是where referee_id != 2 or referee_id is null

6.满足这个条件的我们就查询

7.我们完善后的代码

这道题的考察点在于,sql里面的不等于,不包含null。

在 SQL 中,使用 = 或 != 来比较 NULL 和任何值都不会返回 TRUE 或 FALSE,因为 NULL 代表着未知的值。因此,要检查某一列是否为 NULL,应该使用 IS NULL 或 IS NOT NULL 来进行判断。

SELECTname
FROM customer
WHERE referee_id != 2 OR referee_id is NULL;

1当然我们也可以避开null,用not in,去寻找查询出不是为2的人的姓名

2.代码如下

select name 
from customer
where id  not in 
(select id 
from customer where  referee_id =2)

1.因为在这种表中,客户是被推荐的,推荐的客户的它也是客户,相当于在公司中员工是员工,老板也是员工

2.这种类型的表,我们都可以想到一种方法叫自连接

3.接下来我们的思路是

4. 使用 LEFT JOIN 连接 Customer 表本身,以获取每个客户的推荐者信息。

5.那么on后面的连接条件很明显,就是表1的id等于表2的referee_id

6.使用 WHERE 子句过滤出那些没有被 id = 2 的客户推荐的客户。

7.选择并返回这些客户的姓名。 

8.代码如下:

SELECT c1.name
FROM Customer c1
LEFT JOIN Customer c2 ON c1.id = c2.referee_id
WHERE c2.referee_id != 2 OR c2.referee_id IS NULL;

🚀下单最多的客户

表: Orders

+-----------------+----------+
| Column Name     | Type     |
+-----------------+----------+
| order_number    | int      |
| customer_number | int      |
+-----------------+----------+
在 SQL 中,Order_number是该表的主键。
此表包含关于订单ID和客户ID的信息。

查找下了 最多订单 的客户的 customer_number 。

测试用例生成后, 恰好有一个客户 比任何其他客户下了更多的订单。

查询结果格式如下所示。

示例 1:

输入: 
Orders 表:
+--------------+-----------------+
| order_number | customer_number |
+--------------+-----------------+
| 1            | 1               |
| 2            | 2               |
| 3            | 3               |
| 4            | 3               |
+--------------+-----------------+
输出: 
+-----------------+
| customer_number |
+-----------------+
| 3               |
+-----------------+
解释: 
customer_number 为 '3' 的顾客有两个订单,比顾客 '1' 或者 '2' 都要多,因为他们只有一个订单。
所以结果是该顾客的 customer_number ,也就是 3 。

1.思考如何输出每个客户的订单数量

2.我们根据customer_number来进行分组

3.

select customer_number, count(order_number) 
from Orders 
group by customer_number;

4.输出为

  

5.找到客户订单的最大值

6.

select max(sum) 
from (select customer_number, count(order_number) as sumfrom Ordersgroup by customer_number
)tmp;

7.

 

8.找到订单数量与最大值相等的客户

9.

select customer_number, count(order_number)
from Orders group by customer_number
having count(order_number) = (select max(sum) from (select customer_number, count(order_number) as sumfrom Ordersgroup by customer_number)tmp
);

10.第四步,优化一下输出的内容

11.

select customer_number
from Orders group by customer_number
having count(order_number) = (select max(sum) from (select count(order_number) as sumfrom Ordersgroup by customer_number)tmp
);

希望对你有帮助

相关文章:

力扣刷MySQL-第五弹(详细讲解)

🎉欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克🍹 ✨博客主页:小小恶斯法克的博客 🎈该系列文章专栏:力扣刷题讲解-MySQL 🍹文章作者技术和水平很有限,如果文中出…...

用C语言实现简单的三子棋游戏

目录 1 -> 模块简介 2 -> test.c 3 -> game.c 4 -> game.h 1 -> 模块简介 test.c:测试游戏逻辑 game.c: 函数的实现 game.h:函数的声明 2 -> test.c #define _CRT_SECURE_NO_WARNINGS 1#include "game.h";void menu() {printf("****…...

Yaklang 中的类型和变量

Yaklang 的类型其实非常简单,我们仅需要记住如下类型即可 string 字符串类型,用以快速构建一个字符串int 整数类型:在 64 位机中,int 和 int64 是一样的float 浮点类型,用来定义和表示浮点数byte 本质上等同于 uint8u…...

C语言从入门到实战——编译和链接

编译和链接 前言一、 翻译环境和运行环境二、 翻译环境2.1 预处理(预编译)2.2 编译2.2.1 词法分析2.2.2 语法分析2.2.3 语义分析 2.3 汇编2.4 链接 三、 运行环境 前言 在C语言中,编译和链接是将源代码转换为可执行文件的两个主要步骤。 编…...

【实战教程】ThinkPHP6分页功能轻松实现,让你的网站更高效!

ThinkPHP是一款非常流行的PHP开发框架,其最新版本ThinkPHP6在性能和易用性方面都得到了很大的改善。分页功能是网页开发中非常常见的功能,而ThinkPHP6也提供了非常方便的分页方法。本文将介绍如何实现ThinkPHP6的分页功能。 一、了解分页功能 在Web应用…...

专业130+总分380+哈尔滨工程大学810信号与系统考研经验水声电子信息与通信

今年专业课810信号与系统130,总分380顺利考上哈尔滨工程大学,一年的努力终于换来最后的录取,期中复习有得有失,以下总结一下自己的复习经历,希望对大家有帮助,天道酬勤,加油!专业课&…...

旅游项目day08

1. 旅游日记(游记) 后端:实体类,列表,查看,审核 前端:目的地明细中-游记->带范围条件查询,游记首页,【扩展】游记添加/编辑,【扩展】添加游记时间没登录时…...

蓝桥杯真题(Python)每日练Day2

题目 题目分析 对于本题首先确定其数据结构为优先队列,即邮费最小的衣服优先寄,算法符合贪心算法。可以直接使用queue库的PriorityQueue方法实现优先队列。关于PriorityQueue的使用方法主要有: import queue q queue.Queue()# 队列 pq qu…...

IntelliJ IDEA 拉取gitlab项目

一、准备好Gitlab服务器及项目 http://192.168.31.104/root/com.saas.swaggerdemogit 二、打开 IntelliJ IDEA安装插件 打开GitLab上的项目,输入项目地址 http://192.168.31.104/root/com.saas.swaggerdemogit 弹出输入登录用户名密码,完成。 操作Comm…...

RHCSA上课笔记(前半部分)

第一部分 网络服务 第一章 例行性工作 1.单一执行的例行性工作 单一执行的例行性工作(就像某一个时间点 的闹钟):仅处理执行一次 1.1 at命令:定时任务信息 [rhellocalhost ~]$ rpm -qa |grep -w at at-spi2-core-2.40.3-1.el9.x…...

C++代码入门05 字符串容器

图源:文心一言 上机题目练习整理,本篇作为字符串容器的代码,提供了常规解法及其详细解释,供小伙伴们参考~🥝🥝 第1版:在力扣新手村刷题的记录~🧩🧩 方法:常…...

vue3 项目中 arguments 对象获取失败问题

问题 在 vue3 项目中 获取到的 arguments 对象与传入实参不符,打印出函数中的 arguments 对象显示如下: 原因 作者仔细回看代码才发现,自己一直用的是 vue3 的组合式写法,函数都是箭头函数,而箭头函数不存在 argumen…...

12.线程同步

12.线程同步 1. 为什么需要线程同步2. 互斥锁2.1 互斥锁初始化2.1.1 PTHREAD_MUTEX_INITIALIZER 宏初始化2.1.2 使用函数初始化 2.2 加锁和解锁2.3 pthread_mutex_trylock()2.4 销毁互斥锁2.5 互斥锁死锁2.6 互斥锁的属性 3. 条件变量3.1 条件变量初始化3.2 通知和等待条件变量…...

开发安全之:System Information Leak: External

Overview 在调用 error_reporting() 过程中,程序可能会显示系统数据或调试信息。由 error_reporting() 揭示的信息有助于攻击者制定攻击计划。 Details 当系统数据或调试信息通过套接字或网络连接使程序流向远程机器时,就会发生外部信息泄露。 示例 1…...

burp靶场--文件上传

burp靶场–文件上传 https://portswigger.net/web-security/file-upload/lab-file-upload-remote-code-execution-via-web-shell-upload 1.文件上传 1、原理:文件上传漏洞是指Web服务器允许用户将文件上传到其文件系统,而不充分验证文件的名称、类型、…...

mac 中vscode设置root启动

1. 找到你的vscode app,点击鼠标右键------->选项----->在访达中显示 2. 终端中输入以下命令,不要点回车,不要点回车,输入一个空格 sudo chflags uchg 3. 然后将你的程序拖到终端,会自动…...

【MySQL数据库专项 一】一个例子讲清楚数据库三范式

好的,让我们以学校数据库中的一个表为例来说明第一范式(1NF)、第二范式(2NF)和第三范式(3NF)的概念。 什么是数据库三范式 数据库的范式(Normalization)是一组关于数据…...

【笔记】关于期刊

什么是统计源期刊 统计源期刊,全称为“中国科技论文统计源期刊”,也称作中国科技核心期刊,是由中国科技信息研究所(ISTIC)受国家科技部委托,选定的一系列在中国出版的高质量自然科学类学术期刊。这些期刊是…...

SpringMVC-.xml的配置

文章目录 一、对pom.xml的配置二、对web.xml1.第一种方式2. 第二种方式 三、对SpringMVC.xml的配置 一、对pom.xml的配置 <!-- 打包成war包--><packaging>war</packaging> <dependencies><!-- SpringMVC--><dependency><gro…...

Java找二叉树的公共祖先

描述&#xff1a; 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点 p、q&#xff0c;最近公共祖先表示为一个节点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可能大&#xff08;一个节…...

如何彻底解决Cursor AI试用限制:开源技术方案深度解析

如何彻底解决Cursor AI试用限制&#xff1a;开源技术方案深度解析 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your tri…...

别再手动标注了!用MakeSense一键导入YOLO标签,效率翻倍(附完整流程)

别再手动标注了&#xff01;用MakeSense一键导入YOLO标签&#xff0c;效率翻倍&#xff08;附完整流程&#xff09; 在计算机视觉领域&#xff0c;目标检测&#xff08;Object Detection&#xff09;项目的效率瓶颈往往出现在数据标注环节。传统工作流中&#xff0c;开发者需要…...

钉钉里藏了个 AI 员工?OpenClaw 接入玩法深度拆解

​前言 本文将指导您如何将OpenClaw工具与钉钉企业内部机器人进行无缝对接&#xff0c;实现业务信息和任务的自动化同步&#xff0c;有效提升团队协作效率。我们提供了完整的接入流程指南&#xff0c;包含详细的操作步骤、常见问题解决方案以及实用优化技巧&#xff0c;帮助开…...

ModusToolbox 3.1.0 保姆级安装与配置指南(Windows版,含GitHub访问加速方案)

ModusToolbox 3.1.0 高效安装与深度配置实战&#xff08;Windows环境&#xff09; 对于嵌入式开发者而言&#xff0c;英飞凌的ModusToolbox无疑是一把打开物联网世界的金钥匙。然而&#xff0c;当这把钥匙遇到网络访问的铜墙铁壁时&#xff0c;许多开发者的热情往往被消磨在无尽…...

【干货】如何从软件测试转型为AI测试开发?这份面试题指南值得你一看!

你是软件测试从业者&#xff0c;但想转向人工智能测试开发岗位吗&#xff1f; AI 测试岗位不仅考察传统测试技能&#xff0c;还要求你理解 AI/ML 模型特性、设计测试流程、编写自动化脚本。 今天&#xff0c;我们整理了一份面试题&#xff0c;从基础概念到实战场景&#xff0…...

从账单明细看 Taotoken 按 Token 计费模式带来的成本控制优势

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 从账单明细看 Taotoken 按 Token 计费模式带来的成本控制优势 1. 成本感知的起点&#xff1a;账单明细结构 对于使用大模型 API 的…...

别再只盯着CPU内存了!用Prometheus+Grafana打造你的K8S应用黄金监控仪表盘

从基础设施到业务价值&#xff1a;用PrometheusGrafana构建Kubernetes应用黄金监控体系 当Kubernetes集群中的Pod状态全部显示"Running"时&#xff0c;很多团队会误以为万事大吉。直到某天凌晨3点&#xff0c;客服系统被用户投诉淹没&#xff0c;才发现订单成功率已暴…...

OpenCost:Kubernetes 成本监控,开源的云资源费用分析

OpenCost&#xff1a;Kubernetes 成本监控&#xff0c;开源的云资源费用分析 随着企业将越来越多的工作负载迁移到 Kubernetes&#xff0c;一个新的管理挑战随之浮现&#xff1a;到底哪个团队、哪个应用在花钱&#xff1f; 公有云账单只能告诉你整个集群的月度费用&#xff0c;…...

从《魔兽世界》到你的项目:深入拆解Recast导航网格生成与优化的全流程

从《魔兽世界》到现代项目&#xff1a;Recast导航网格技术的深度实践指南 1. 导航网格技术的演进与核心价值 2004年《魔兽世界》的发布不仅是MMO游戏史上的里程碑&#xff0c;更悄然改变了游戏AI寻路技术的演进轨迹。当数百万玩家在艾泽拉斯大陆自由探索时&#xff0c;鲜少有人…...

FlicFlac:3分钟掌握Windows音频格式转换的终极免费工具

FlicFlac&#xff1a;3分钟掌握Windows音频格式转换的终极免费工具 【免费下载链接】FlicFlac Tiny portable audio converter for Windows (WAV FLAC MP3 OGG APE M4A AAC) 项目地址: https://gitcode.com/gh_mirrors/fl/FlicFlac 还在为不同设备间的音频格式兼容性问…...