自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 力扣-Mysql-2820-选举结果(中等)

本题需求为选取结果,即求出票数最多的候选人,没有很难思考的地方,只需要求出投票者投出的票的分值,然后将候选者获得的谁的票对应起来,求出候选者票分值总和,再对分值进行排名求排名为1的候选者即可;需要注意的点为:需要过滤空值,并且一个投票者投多个人的时候会平分选票的分值,而多个候选人票数相等时,要输出所有候选人的名字,因此要考虑使用哪个排名函数。

2024-11-26 20:52:08 1497

原创 力扣-Mysql-2175-世界排名的变化(中等)

本题获取世界排名变化,只需要根据变化前后的分数以及名称进行排序求出排名然后将前后的排名值进行相减即可求出;但是本题存在一个小坑,就是排名函数得到的排名值,一般为bigint unsigned 即无符号数 的 bigint类型,无符号数相减无法得到负值,如果结果有负值运行结果就会保存,所以在相减之前我们需要把无符号数先转换为signed 有符号数,使用cast函数进行转换,转换之后再相减就可以得到负值了。cast() 函数用于将一个值或表达式转换为指定的数据类型。,其中expression。

2024-11-23 09:33:52 1447

原创 力扣-Mysql-1875-将工资相同的雇员分组(中等)

本题需求为将工资相同的雇员分组;首先根据需求以及示例数据可以分析出首先要根据工资进行分组,统计出相同工资值的雇员有几个;然后筛选出每组雇员数大于2的雇员,并按照工资的升序对这些雇员进行排序,使用dense_rank()函数,结果并列且连续,就可以让相同工资的雇员拥有相同的排名值,即为组id;按照需求进行order by排序,最终输出需求所要求的数据。

2024-11-20 11:12:35 1220

原创 力扣-Mysql-1811 - 寻找面试候选人(中等)

本题需求为寻找面试候选人,难点在于求连续三场及更多获得奖牌的用户:求连续问题的通用思路为首先观察表中数据是否存在等差数列,如果存在等差数列,那只需要再创造一个等差数列即可,通常使用row_number() 排名函数获取等差数列,然后观察数据 ,求两个等差数列的差值,通过差值及其他字段进行分组,差值相同的即为连续的,通过差值及其他字段进行分组,使用count()函数统计差值相同的次数,过滤出满足题目需求的值即可。

2024-11-19 15:59:33 1432

原创 力扣-Mysql-3230-客户购买行为分析(中等)

本题需求为客户购买行为分析,只需要根据需求使用sum()、count()、round()等函数一个一个算出结果即可;最常购买的产品类别(如果相同,选择最近交易的那个),要注意这个结果,需要我们使用row_number() 排名函数,对customer_id 分组,对消费者购买数量倒序以及购买日期倒序排序获取排名,然后取排名为第一的结果即可。

2024-11-16 19:57:15 1179

原创 力扣-Mysql-3268-查找重叠的班次 II(困难)

本题需求为查找重叠的班次,并计算最多重叠班次数以及重叠班次的总持续时间;一般解决这种问题,需要进行自关联查询,并根据分组和时间顺序进行排名,然后进行时间差值计算,难点为表关联时条件的选择以及时间差值的计算;本题使用了 TIMESTAMPDIFF() 函数,()函数用于计算两个日期或日期时间之间的差值。它与DATEDIFF()函数不同,TIMESTAMPDIFF()函数可以精确计算到指定的时间单位,而不仅仅是天数。

2024-11-16 14:46:45 1142

原创 力扣-Mysql-3278. 寻找数据科学家职位的候选人 II(中等)

本题需求为寻找数据科学家职位的候选人,本题需要注意的点有:候选人必须拥有项目的所有技能,因此要对数据进行筛选;计算每个人的评分时要注意,题目要求 分数是从100分开始的,因此要先加 100 再使用 case when 条件判断 以及 sum() 函数 进行总分数的获取;最终根据总分数以及候选人id求得每个项目的候选排名,筛选出每个项目排名为第一的候选人即为最佳候选人。

2024-11-16 10:12:14 1079

原创 力扣-Mysql-3293-计算产品最终价格(中等)

本题需求为计算产品最终价格,并没有很难思考的点。只需要根据题目要求使用case when 条件判断 进行价格计算即可;进行两表关联时要注意选择 Products表为主表,以及价格计算时要使用 round() 函数四舍五入保留两位小数。

2024-11-15 16:27:37 1132

原创 力扣-Mysql-3308- 寻找表现最佳的司机(中等)

3308. 寻找表现最佳的司机 - 力扣(LeetCode)优步正在基于司机的行程分析他们的情况。编写一个解决方案,根据下列标准来找到 每种动力类型 中 表现最好的司机:返回结果表以 升序 排序。输入: 表:+-----------+----------+-----+------------+-----------+| driver_id | name | age | experience | accidents |+-----------+----------+-----+--------

2024-11-15 12:23:10 1101

原创 力扣-Mysql-3322- 英超积分榜排名 III(中等)

本题需求为获取英超积分榜排名:只需要求出球队总得分、净胜球数,然后根据赛季分组,根据总得分降序、净胜球数降序、队名升序进行排名即可;因为积分相同的球队必须分配相同的排名,所以要选择使用 rank() 排名函数,结果是 存在并列排名但排名不连续的。

2024-11-14 20:30:44 1115

原创 力扣-Mysql-3252-英超积分榜排名 II(中等)

本题需求为获取英超球队积分榜排名;本题没有太难思考的点,唯一要注意的是在进行等级划分时,不可能将球队分割,所以要选择是向上取整还是向下取整,本题选择的是向上取整函数--ceiling()函数;Ceiling() 函数是一个数学函数,用于向上取整。它返回大于或等于给定数字的最小整数。语法为:ceiling(x),其中x是要进行向上取整操作的数值表达式,可以是一个数字、一个包含数字的列或者是一个能返回数字的表达式。

2024-11-14 15:57:13 1447

原创 力扣-Mysql-3328-查找每个州的城市 II(中等)

本题需求为查询每个州的城市:难点在于将每个州原本是列数据的城市,使用逗号分隔为一行数据输出。我们使用了 Group_Concat 聚合函数解决这个问题;Group_Concat 函数是一个聚合函数,它可以将分组后的某一列的值按照指定的分隔符连接成一个字符串。在一些情况下,我们可以利用它来将多列的数据转换为一行中的字符串形式,虽然不是严格意义上的列转行,但在某些展示场景下是很有用的。获取每个州以及城市的首字母使用了 Left 函数;Left() 函数是一个用于字符串操作的函数。

2024-11-14 10:54:37 1275

原创 力扣-Mysql-3338-第二高的薪水II(中等)

本题需求为获取第二高的薪水,考察了排名函数的使用;排名函数主要用于在查询结果中对记录进行排序,并为每一行分配一个唯一的排名。

2024-11-02 00:54:48 1191

原创 力扣-Mysql-1715-苹果和橘子的个数(中等)

本题获取苹果和橘子数量并无太难思考的点;只需要搞清楚两边关联的条件,使用 left join 左连接,让表二中不存在的值以 NULL值显示出来即可;将两表苹果数量相加时,需使用 IFNULL 空值判断,否则会导致 数值类型与 NULL值相加的情况。

2024-10-31 20:50:23 1096

原创 力扣-Mysql-1613-找到遗失的ID(中等)

本题难点是考虑到使用递归,并构建正确的递归条件;递归通常是指递归查询,这在处理具有层次结构或树状结构的数据时非常有用。从MySQL 8.0开始,MySQL支持使用公用表表达式(Common Table Expressions,CTE)来实现递归查询,UNION ALL用于合并初始查询和递归查询的结果。

2024-10-31 09:46:03 716

原创 力扣-Mysql-1555-银行账号概要(中等)

本题需求为银行账户概要,即求出用户交易后的余额,然后判断用户的账户是否透支了余额;本题使用了 sum() 函数嵌套 CASE WHEN 语句,即先进行条件判断,满足条件的的数据再进行 sum() 求和;使用了 IF() 语句,IF 语句也是条件判断语句,IF语句括号中,第一个为条件判断依据,如果条件成立,返回第一个值,条件表不成立,返回第二个值。

2024-10-30 19:39:08 961

原创 力扣-Mysql-1543- 产品名称格式修复(简单)

本题主要考察Mysql中的内容处理方法:使用了 LOWER() 函数,它主要用于将字符串中的所有字母转换为小写字母;使用了 REPLACE() 函数,它主要用于在字符串中替换指定的子串,它可以替换字符串中出现的所有特定子串,而不仅仅第一次出现;使用了 SUBSTR() 函数,它主要用于从字符串中提取子字符串,并且可以指定开始截取位置和指定子字符串截取长度。

2024-10-30 16:52:13 875

原创 力扣-Mysql-1479-周内每天的销售情况(困难)

本题难点为如何从日期数据中提取星期几,并把星期几作为字段名输出;本题使用了date_format() 函数,它用于根据指定的格式字符串格式化日期和时间值,语法格式为date_format(date,format),date为要格式化的日期和时间值,format 为字符串,指定的输出格式;还是用了 ifnull() 函数,它用来检查两个表达式并返回第一个非空表达式,如果第一个表达式非空,就返回第一个表达式,反之则返回第二个表达式的值,本题将第二个表达式设置为0,如果第一个表达式为NULL,就返回0.

2024-10-30 16:12:25 1230

原创 力扣-Mysql-1468-计算税后工资(中等)

本题需求为求员工税后工资,根据每个公司的最高工资选出每个公司的员工税率,再通过税率计算员工税后工资即可,计算公式为;本题使用case...when...end 语句,CASE WHEN 语句是一种条件逻辑表达式,类似于程序设计语言中的 if-else 或 SWITCH 语句。它允许你在SQL查询中根据不同的条件执行不同的逻辑分支,并返回相应的结果。在本题中,when 判断最高工资处于哪个工资区间,然后通过 then 输出对应的税率。

2024-10-30 12:01:07 1233

原创 力扣-Mysql-1459-矩形面积(中等)

本题难点为两个表连接时连接条件的选择,两个点构建矩形时只能为矩形的对角顶点,所以两个点的x坐标和y坐标都不能相等。连接后会产生多个p1.id 和 p2.id相同的结果,所以再加上p1.id < p2.id;本题使用了 ABS() 函数,主要用于返回一个数的绝对值。绝对值是一个数不考虑正负号的非负值。对于任何给定的数值,如果它是正数或零,ABS() 函数返回的是它本身;如果它是负数,ABS() 函数返回的是它的正数形式;

2024-10-29 21:06:47 1017

原创 力扣-Mysql-1435-制作会话柱状图(简单)

本题难点为输出的结果中有原表不存在的列,所以需要我们自己创建列;以及怎样进行数据的筛选;使用了 UNION 操作符,UNION是用来合并两个或多个SELECT语句结果集的SQL操作符,使用UNION时,两个SELECT语句中选择的列数必须相同,并且相应的列数据类型也需要兼容。UNION操作会去除结果集中的重复行,返回唯一行;使用了 FLOOR() 函数,它的作用是返回大于或等于给定数值的最小整数,即向下取整,如果给定的数值本身就是一个整数,那么 FLOOR() 函数将返回该数值本身。

2024-10-29 20:11:15 1086

原创 力扣-Mysql-1369-获取最近第二次的活动(困难)

本次题目的实现使用了CTE表达式,窗口函数等。窗口函数是mysql8.0之后才有一种函数,窗口函数ROW_NUMBER()是一种分析函数,它为结果集中的每一行分配一个唯一的连续整数,主要使用场景为 排名场景(不存在并列,排名连续)。

2024-10-28 21:28:08 1252

原创 力扣-Mysql-1364-顾客的可信联系人数量(中等)

本次题目代码使用CTE表达式,CTE是一种在 SQL 查询中定义临时结果集的方法,它可以让查询更加简洁、可读性更高,并且可以重复引用。CTE 是在WITH关键字后面定义的一个子查询,可以在同一查询中被引用多次;本次题目的难点是有两个为0的结果,我们首先使用左连接(left join)将主表中不存在的字段输出为 null ,而在count() 统计时,为 null 的字段并不会被统计个数,所以最终结果仍然为 null ,因此我们使用 IFNULL(exp,0)将结果转化为0输出;IFNULL。

2024-10-28 15:15:54 977

原创 力扣-Mysql-1355-活动参与者(中等)

1.本次题目使用CTE、排名函数dense_rank()或row_number()以及聚合函数等;2.本题主要思想是如何查找参与人数最多和参与人数最少的活动以及找到之后如何将它们排除。

2024-10-26 11:33:20 942 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除