力扣数据库题库学习(4.22日)

news2025/1/16 16:17:07

577. 员工奖金

问题链接
问题图片

思路分析

Employee表与Bonus表通过empId字段可以连接,需求是查出奖金少于1000的员工名和奖金值。
这里奖金少于1000的情况就是没有奖金+有奖金但少于1000

这里我给出的解决方案就是使用左连接,将Employee表作为左表,连接Bonus表,对于没有bonus字段的情况,两个表连接之后生成的临时表就会用null填充。然后使用筛选条件,bonus为null或bonus小于1000。

成功提交的sql语句如下:

使用左连接+筛选条件

SELECT e.name,b.bonus FROM Employee e
LEFT JOIN Bonus b ON e.empId=b.empId
WHERE b.bonus<1000 OR b.bonus IS NULL
;

运行成功,结果如下

在这里插入图片描述

584. 寻找用户推荐人


问题链接
问题图片

思路分析

需求: 没有被 id = 2 的客户 推荐 的客户的姓名
那么这个筛选条件= referee_id不为2【referee_id!=2 or referee_id is null】
这个非常简单,直接使用where语句即可
已经成功提交的sql语句如下:

where筛选数据

SELECT name FROM Customer WHERE referee_id!=2 OR referee_id IS NULL;

586. 订单最多的客户

问题链接
问题图片

思路分析

我们来看题目的要求:找到下单最多的客户,看示例可以知道,我们最后的结果是获取到下单最多客户的customer_number字段。
这里的关键点就是如何获取到每个顾客下单的数量。这个方法在sql内解决方案就是按照customer_number分组,然后计算每个分组的记录数,即为单个顾客的订单量,最后将数据倒排,取出第一个数据就可以了。
下面我们来实现,代码如下

GROUP BY分组 ORDER BY 排序 LIMIT 1

SELECT customer_number FROM Orders
GROUP BY customer_number
ORDER BY COUNT(*) DESC
LIMIT 1;

596. 超过5名学生的课

问题链接
问题描述

思路分析

要求找到班级的名称,且班级的学生数>=5
我们来看这个学生表,是由每一个学生作为记录的,每一个学生对应一个班级。解决这个问题的关键就是统计出来每个班级的学生数,也就是说,将表内数据按照班级分组,统计出不同组内学生的数量【等于组内记录数】。
这么一说,其实方案就很简单了,先根据班级分组,然后统计分组记录,最后筛选出记录数>=5的班级名称即可。
看我的代码

HAVING对分组过滤

SELECT class FROM Courses
GROUP BY class
HAVING COUNT(*)>=5;

添加点知识,关于where与having的区别
HAVING 子句用于在对结果集进行分组后进行过滤,类似于 WHERE 子句对原始数据进行过滤

  1. WHERE 子句在分组之前过滤数据,而 HAVING 子句在分组之后过滤数据。
  2. WHERE 子句对行进行过滤,而 HAVING 子句对分组进行过滤。

607. 销售员

问题链接
问题图片

思路分析

找出没有任何与名为 “RED” 的公司相关的订单的所有销售人员的姓名
分析一下需求,没有任何与red公司相关的销售人员名单。这个我们一张一张表来看关联性:
SalesPerson表内没有什么与red公司直接关联的数据,Company表内有RED相关的数据,即com_id为1的这条记录; Orders表内也有相关的数据,com_id为1的都是相关的数据。
我的思路很简单,
代码很简单,如下:

-- 找到com_id为1的sales_id ==>这个提交有问题,必须使用Company 表name 过滤,而不是直接使用com_id过滤
-- 查询SalesPerson并根据sales_id过滤
SELECT name FROM SalesPerson WHERE sales_id NOT IN
(SELECT sales_id FROM Orders INNER JOIN Company ON Orders.com_id = Company.com_id WHERE name="RED");

总结

今天这5道题目主要考这几个知识点

  1. LEFT JOIN 左连接
  2. where筛选数据
  3. GROUP BY分组
  4. ORDER BY 排序
  5. LIMIT 1排序限制
  6. HAVING 子句
  7. 子查询

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1623050.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

c++二叉树的进阶--二叉搜索树

1. 二叉搜索树的概念 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树&#xff0c;或者是具有以下性质的二叉树: 若它的左子树不为空&#xff0c;则左子树上所有节点的值都小于根节点的值 若它的右子树不为空&#xff0c;则右子树上所有节点的值都大于根节点的值 它的左…

企业为什么要选择通配符SSL证书使用?

企业选择使用通配符SSL证书主要是出于以下几个重要原因&#xff1a; 1. 经济性&#xff1a; - 节省成本&#xff1a;相较于为每一个子域名单独购买并维护单独的SSL证书&#xff0c;通配符证书能够以一张证书覆盖同一主域名下的所有同级子域名&#xff0c;无需为新增或已有的子域…

SpringBoot框架——8.MybatisPlus常见用法(常用注解+内置方法+分页查询)

1.MybatisPlus常用注解&#xff1a; 1.1 当数据库、表名和字段名和实体类完全一致时无需加注解&#xff0c;不一致时&#xff1a; TableName指定库名 TableId指定表名 TableField指定字段名 1.2 自增主键&#xff1a; TableId(typeIdType.AUTO) private Long id; 1.3 实体类中属…

【JAVA】java 中的Stream 常用函数

java 中的Stream 常用函数 一、简介1.1、什么是Stream&#xff1f;1.2、创建Stream1.3、Stream的特性 二、Stream的操作2.1、中间操作&#xff1a;2.2、终端操作&#xff1a;2.3、Stream的并行处理 三、Stream 常用函数四、使用示例4.1、计算集合中偶数的平方和&#xff1a;4.2…

新手也能学会的甘特图制作教程

甘特图是什么&#xff1f; 甘特图(Gantt Chart)是一种以图表形式直观展示项目计划的工具,由20世纪初的管理学家亨利甘特(Henry Gantt)发明并命名。它具有以下几个主要特点: 水平时间轴 甘特图的横轴是一条时间轴,通常按天、周或月来刻度,直观展示了项目从开始到结束的整个时间…

【信息收集】端口扫描masscan负载均衡识别lbd

★★免责声明★★ 文章中涉及的程序(方法)可能带有攻击性&#xff0c;仅供安全研究与学习之用&#xff0c;读者将信息做其他用途&#xff0c;由Ta承担全部法律及连带责任&#xff0c;文章作者不承担任何法律及连带责任。 1、什么是masscan masscan在kali系统上是自带的端口扫描…

回归预测 | Matlab实现BO-RF贝叶斯优化随机森林多变量回归预测

回归预测 | Matlab实现BO-RF贝叶斯优化随机森林多变量回归预测 目录 回归预测 | Matlab实现BO-RF贝叶斯优化随机森林多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现BO-RF贝叶斯优化随机森林多变量回归预测&#xff1b; 2.输入7个特征&#xf…

考研日常记录(upd 24.4.24)

由于实在太无聊了 &#xff0c; 所以记录以下考研备考日常 &#xff0c; 增加一点成就感 &#xff0c; 获得一点前进动力。 文章目录 2024.4.18 周四课程情况&#xff1a;时间规划&#xff1a; 2024.4.19 周五课程情况&#xff1a;时间规划&#xff1a; 2024.4.20 周六2024.4.2…

Java知识总结---并发篇

线程 线程的状态 Java中线程可以有如下6中状态&#xff1a; NEW 新创建 RUNNABLE 可运行 BLOCKED 阻塞 WAITING 等待 TIMED WAITING 计时等待 TERMINATED 终止 线程的创建 &#xff08;1&#xff09;继承Thread类 public class ExtendsThread extends Thread { O…

学习Docker笔记

在23号刚刚学完新版本的docker还想说回去继续学习老版本的springcloud课程里面的docker 结果一看黑马首页新版本课程出了&#xff0c;绷不住了。以下是我学习新版本docker的笔记&#xff0c;记录了我学习过程遇到的各种bug和解决&#xff0c;也参考了黑马老师的笔记&#xff1a…

SLMs之Phi-3:Phi-3的简介、安装和使用方法、案例应用之详细攻略

SLMs之Phi-3&#xff1a;Phi-3的简介、安装和使用方法、案例应用之详细攻略 导读&#xff1a;2024年4月23日&#xff0c;微软发布Phi-3&#xff0c;这是微软推出的一款新的开源AI模型家族Phi-3。背景痛点&#xff1a;小语言模型(SLM)尽管规模不大&#xff0c;但在语言理解、代码…

three.js 制作卡牌正反面 旋转

1.效果图 2.代码 <template><div><div id"container"></div></div> </template><script> import * as THREE from "three"; import { OrbitControls } from "three/examples/jsm/controls/OrbitControls.…

C语言指针进阶:各类型指针变量详解

目录 1. 字符指针变量2. 数组指针变量2.1 什么是数组指针变量2.2 数组指针变量的初始化 3. 二维数组传参的本质4. 函数指针变量4.1 函数指针变量的创建4.2 函数指针变量的使用4.3 代码分析4.3.1 typedef 关键字 5. 函数指针数组6. 转移表 正文开始。 1. 字符指针变量 我们可以…

融合算法:引力融合

问题&#xff1a; 有一批数据&#xff0c;如&#xff1a; [ 1, 2, 3, 45, 46, 55, 89, 101 ]想把它分成3块&#xff0c;如&#xff1a; [1, 2, 3] [45, 46, 55] [89, 101]算法&#xff1a; 参考万有引力公式&#xff0c;想象坐标轴上这8个点的分布&#xff1a; 每一个点都会…

偏执型人格的症状和起因,偏执型人格测试和应对方法

偏执型人格&#xff0c;主打一个敏感多疑&#xff0c;过分的固执&#xff0c;过度的警觉。无论别人怎么解析&#xff0c;都难以说服。偏执型人格常常毫无根据的怀疑他人的忠诚&#xff08;动机&#xff09;&#xff0c;曲解别人的言语&#xff08;或行为&#xff09;&#xff0…

MySQL--表的操作

目录 创建表 查看表结构 修改表 新增列 修改列类型 修改列名 修改表名&#xff1a; 删除列 删除表 创建表 语法&#xff1a; CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引…

数据结构 - 顺序表

一. 线性表的概念 线性表&#xff08;linear list&#xff09;是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构&#xff0c;常见的线性表&#xff1a;顺序表、链表、栈、队列、字符串... 线性表在逻辑上是线性结构&#xff0c;也就说是连续的…

分类算法——决策树(五)

认识决策树 决策树思想的来源非常朴素&#xff0c;程序设计中的条件分支结构就是if-else结构&#xff0c;最早的决策树就是利用这类结构分割数据的一种分类学习方法。 决策树分类原理详解 为了更好理解决策树具体怎么分类的&#xff0c;通过一个问题例子&#xff1a; 问题…

每日OJ题_BFS解决拓扑排序③_力扣LCR 114. 火星词典

目录 力扣LCR 114. 火星词典 解析代码 力扣LCR 114. 火星词典 LCR 114. 火星词典 难度 困难 现有一种使用英语字母的外星文语言&#xff0c;这门语言的字母顺序与英语顺序不同。 给定一个字符串列表 words &#xff0c;作为这门语言的词典&#xff0c;words 中的字符串已…

[Java EE] 多线程(三):线程安全问题(上)

1. 线程安全 1.1 线程安全的概念 如果多线程环境下代码运行的结果不符合我们的预期,则我们说存在线程安全问题,即程序存在bug,反之,不存在线程安全问题. 1.2 线程不安全的原因 我们下面举出一个线程不安全的例子:我们想要在两个线程中对count进行操作 public class Demo9 …