【力扣-10天SQL入门】1~3天刷题 知识点总结

news2025/1/12 23:12:22

https://leetcode.cn/study-plan/sql/?progress=jgmzq5s


第1天 选择

595. 大的国家

1757. 可回收且低脂的产品

枚举类型enum

enum是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用,如sex取值为 ('male', 'female', 'unknown')

若要使用条件过滤,如过滤出男性,直接 sex = 'male' 就行

584. 寻找用户推荐人

is null的情况

Q:返回客户列表,列表中客户的推荐人的编号都不是2,直接 referee_id != 2

注意只写这个条件的话,推荐人编号为null的也不会输出

所以最后的过滤条件应该是 referee_id != 2 or referee_id is null

是 is null,而不是 = null

183. 从不订购的客户

Q:两个表,Customers表(有Id和Name两列)和Orders表(有Id和CustomerId两列),返回一列客户的姓名即可,列名叫Customers

select Name as Customers
from Customers a left join Orders b
on a.Id = b.CustomerId 
where b.CustomerId is null

left join ... on 连接条件 where 过滤条件

不考虑where条件下,left join会把左表所有数据查询出来,on及其后面的条件仅仅会影响右表的数据(符合就显示,不符合全部为null)

在匹配阶段,where子句的条件都不会被使用,仅在匹配阶段完成以后,where子句条件才会被使用,它将从匹配阶段产生的数据中检索过滤

where放后面:先连接生成临时查询结果,然后再筛选
on放后面:先根据条件过滤筛选,再连接生成临时查询结果

第2天 排序&修改

1873. 计算特殊奖金

Q:表Employees有3列employee_id、name、salary,返回两列employee_id、奖金bonus(结果按employee_id排序)。如果一个雇员的id是奇数,且他的名字不是以 'M' 开头,则他的奖金就是他的工资,否则奖金为0

  • 雇员的id是奇数:employee_id % 2 != 0

  • 名字不是以 'M' 开头:left (name, 1) <> 'M'

select employee_id,
case when employee_id%2 != 0 and left(name,1) <> 'M'
then salary
else 0 end as bonus
from Employees 
order by employee_id

left(str, length)

str是要提取子字符串的字符串;length是一个正整数,指定将从左边返回的字符数

left() 函数:从左开始截取字符串,length是截取的长度

case when ... then ... else ... end

case具有两种格式 —— 简单case函数和case搜索函数

  • 简单case函数

case sex
when '1' then '男'
when '2' then '女'
else '其他' end
  • case搜索函数

case when sex = '1' then '男'
when sex = '2' then '女'
else '其他' end

这两种方式可以实现相同的功能。简单case函数的写法相对比较简洁,但是和case搜索函数相比,功能方面会有些限制,比如写判定式

627. 变更性别

Q:Salary表有4列,本题要将sex列的 'm' 和 'f' 互换

要求:仅使用单个update语句,且不产生中间临时表(不能使用select语句)

update Salary
set sex=(
    case sex when 'm' then 'f' else 'm' end
)

update ... set ... where...

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

196. 删除重复的电子邮箱

Q:表Person有两列id和email,删除所有重复的电子邮件,只保留一个id最小的唯一电子邮件

delete from Person
where id not in(
    select * from(
        select min(id) from Person
        group by email
    ) t
)

注意,子查询出来的结果要取别名


第3天 字符串处理函数/正则

1667. 修复表中的名字

Q:表Users有两列user_id和name,使name只有第一个字符是大写,其余都是小写。返回结果按user_id排序

select user_id,
concat(upper(left(name,1)), lower(right(name,length(name)-1))) as name
from Users
order by user_id

concat()、upper()、lower()

  • concat() 可以将多个字符串拼接在一起

  • upper() 将字符串中所有字符转为大写

  • lower() 将字符串中所有字符转为小写

1484. 按日期分组销售产品

Q:表Activities有两列sell_date和product,查找每个日期销售的不同产品的数量及名称(按词典序排列)。返回3列,分别为sell_date、num_sold、products,并按sell_date排序

select sell_date,
count(distinct product) as num_sold,
group_concat(distinct product) as products
from Activities
group by sell_date
order by sell_date

group_concat()

SELECT id, GROUP_CONCAT(score) from score GROUP BY id;

1527. 患某种疾病的患者

Q:表Patients,有三列patient_id、patient_name和conditions。其中conditions包含0个或以上的疾病代码,以空格分隔。返回还是这三列,但是是患有I类糖尿病的患者信息(I类糖尿病的代码总是包含前缀DIAB1)

select patient_id, patient_name, conditions
from Patients
where conditions like 'DIAB1%'
or conditions like '% DIAB1%'

注意,第二种情况,%和DIAB1之间有一个空格

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

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

相关文章

同为(TOWE)电源线让家用电器随心放置

如今&#xff0c;随着科技水平的不断发展&#xff0c;人们工作、生活中越来越离不开各类电子设备和电器产品。当用电器数量多了以后&#xff0c;由于电器设备原有电线长度的限制&#xff0c;常常需要通过连接接线板来延长电器设备的电能传输线路。电源线虽然看着是一件不起眼的…

51单片机定时器使用与计算-----day3

51单片机定时器-----day3 8051单片机介绍&#xff1a; 集成 8位CPU、 4K字节ROM&#xff08;掉电不丢失&#xff09;、 128字节RAM&#xff08;掉电丢失&#xff09;、 4个8位并口、 1个全双工串行口、2个16位定时/计数器。 寻址范围64K&#xff0c; 并有控制功能较强的布尔处…

MyBatis执行Sql的流程分析

目录 举例 openSession的过程 Executor 简单总结 获取Mapper的流程 Mapper方法的执行流程 doQuery方法 简单总结 举例 public class App {public static void main(String[] args) {String resource "mybatis-config.xml";Reader reader;try {//将XML配置文…

专享策略04 | 商品通用套利模型(二)

量化策略开发&#xff0c;高质量社群&#xff0c;交易思路分享等相关内容 『正文』 ˇ 大家好&#xff0c;去年我们推出了一款套利模型专享策略No.2 | 套利策略-自动换仓-出场加速. 截至到今天创出新高。 大家比较缺少套利&#xff0c;截面&#xff0c;盘口等类型的策略。因此…

「TCG 规范解读」PC 平台相关规范(1)

可信计算组织&#xff08;Ttrusted Computing Group,TCG&#xff09;是一个非盈利的工业标准组织&#xff0c;它的宗旨是加强在相异计算机平台上的计算环境的安全性。TCG于2003年春成立&#xff0c;并采纳了由可信计算平台联盟&#xff08;the Trusted Computing Platform Alli…

SpringBoot集成Knife4j接口管理工具

SpringBoot集成Knife4j接口管理工具1、导入依赖包2、配置Knife4j3、放行Knife4j的请求4、使用Knife4j注解5、实现效果平时开发项目都用的是Swagger2或者Swagger3&#xff0c;但是这两个UI看起来不是很舒服&#xff0c;今天看到了Knife4j&#xff0c;它对Swagger进行了增强&…

华为OD机试题【和最大子矩阵】用 C++ 进行编码 (2023.Q1)

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧文章目录 最近更新的博客使用说明和最大…

3.ffmpeg命令行环境搭建、ffmpeg命令行初步了解

在上章,我们讲过: ffmpeg.exe: 主要用于转码或者剪切的应用程序, 也可以从url/现场音频/视频源抓取输入源ffplay.exe: 主要用于播放视频的应用程序,该应用程序源码是开源的,我们后面章节会去源码分析ffprobe.exe: 主要用于分析视频码流的应用程序, 可以获取媒体文件的详细信息,…

Jupyterlab 学习与测试笔记

前言本篇博客主要解决阿里云服务器上Jupyterlab配置方面的一些问题。1、安装完无法启动Jupyterlab首先声明&#xff0c;我在Anaconda3安装过程中已经设置了将安装相关的Python&#xff0c;ipython&#xff0c;Jupyter等添加到环境变量。但是一开始安装完&#xff0c;直接在命令…

从计费出账加速的设计谈周期性业务的优化思考

1号恐惧症 你有没有这样的做IT的朋友&#xff1f;年纪轻轻&#xff0c;就头发花白或者秃顶&#xff0c;然后每个月周期性的精神不振&#xff0c;一到月底&#xff0c;就有明显的焦虑。如果有&#xff0c;他可能就是运营商行业做计费运营的&#xff0c;请对他好点&#xff0c;特…

【LeetCode】剑指 Offer(12)

目录 题目&#xff1a;剑指 Offer 30. 包含min函数的栈 - 力扣&#xff08;Leetcode&#xff09; 题目的接口&#xff1a; 解题思路&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 写在最后&#xff1a; 题目&#xff1a;剑指 Offer 30. 包含m…

【Node.js算法题】数组去重、数组删除元素、数组排序、字符串排序、字符串反向、字符串改大写 、数组改大写、字符替换

文章目录前言数组去重数组删除元素数组排序字符串排序字符串反向字符串改大写数组改大写字符替换字符替换运行结果&#xff1a; ![在这里插入图片描述](https://img-blog.csdnimg.cn/8ac1c15e6f0944cdb8ca50bcb844182a.png)总结前言 本期文章是js的一些算法题&#xff0c;包括…

FreeRTOS入门(07):流缓冲区 消息缓冲区

文章目录目的基础说明流缓冲区相关函数使用演示消息缓冲区相关函数使用演示总结目的 缓冲区是操作系统中常见的一种用于任务间数据传递的机制。这篇文章将对FreeRTOS中相关内容做个介绍。 本文代码测试环境见前面的文章&#xff1a;《FreeRTOS入门&#xff08;01&#xff09;…

Flink:The generic type parameters of ‘Collector‘ are missing 类型擦除

类型擦除问题处理报错日志描述问题描述报错解决其他方法方法一&#xff1a;TypeInformation方法二&#xff1a;TypeHint报错日志描述 报错日志&#xff1a; The generic type parameters of Collector are missing. In many cases lambda methods dont provide enough informa…

双边滤波和交叉双边滤波

什么是双边滤波 双边滤波是一种局部的、非线性的、非迭代的滤波技术&#xff0c;它将经典的低通滤波器与边缘停止函数相结合&#xff0c;当像素之间的强度差较大时&#xff0c;边缘停止函数会衰减滤波器的核心。由于同时考虑了相邻像素的灰度相似度和几何贴近度&#xff0c;滤…

使用开源httpworkshop执行http api测试与资源下载

平时我们在涉及HTTP开发时&#xff0c;会使用postman做api测试&#xff0c;优点是界面友好&#xff1b;平时我们写爬虫查找网络资源一般使用python编写脚本&#xff0c;优点是脚本支持的功能灵活&#xff1b;其实网络上做HTTP测试的工具和产品特别的多&#xff0c;但是都是做好…

锐捷(十六)mpls vxn option c 带RR场景

一 实验拓扑二 实验需求如图模拟R1在北京&#xff0c;R10在上海&#xff0c;要求二者之间用loopback口进行通信由于公司机密性质&#xff0c;要求二者需要使用mpls vxn 虚拟专线的方式进行通信本实验采取option c带RR的方式模拟通信左边AS100&#xff0c;右边AS200&#xff0c;…

19万字智慧城市总体规划与设计方案word

【版权声明】本资料来源网络&#xff0c;知识分享&#xff0c;仅供个人学习&#xff0c;请勿商用。【侵删致歉】如有侵权请联系小编&#xff0c;将在收到信息后第一时间删除&#xff01;完整资料领取见文末&#xff0c;部分资料内容&#xff1a; 1.1.1 感知基础设施 感知基础设…

数据库三大范式和个人看法

三大范式图解概括 第一范式(1NF) 确保数据库表字段的原子性 会存在数据冗余过大&#xff0c;插入异常&#xff0c;删除异常&#xff0c;修改异常的问题 举例&#xff1a; 某个字段name&#xff1a;‘西瓜 1566666‘ 依照第一范式就需要拆分成 name:‘西瓜’ ,phone:1566666’ …

房产营销、地产中介如何高效低成本获客?

数字化对企业而言&#xff0c;机遇和挑战并存。房产企业可借助数字化加强日益扩大的业务规模和业务领域管理&#xff0c;以提升管理效率&#xff0c;降低管理难度&#xff1b;基于数字化技术加强客户的服务体验&#xff0c;进而收集多业态客户和场景数据&#xff0c;拓展创新业…