SQL练习(力扣版)
文章平均质量分 89
每日SQL实战练习
低调$(生活)
可以偶尔放松,但不可颓废自我
展开
-
SQL力扣练习(十一)
用case when,先判断是否根节点,然后根据一个内查询再区分是否叶节点,这个方法虽然简单点,但not in 较为损耗性能,总体速度与解法一差不多.首先根节点很好判断,先用一个flag 区分出根和非根,然后用p_id是否含有id,根据这个标准判断是否叶节点.使用left join和union实现 先改奇数id学生的名字,再改偶数id学生的名字,全改过来后,需要注意的是lag 取得是当前行之前的数据,lead 取的实当前行之后的数据。节点 1 是根节点,因为它的父节点为空,并且它有子节点 2 和 3。原创 2023-08-18 12:04:46 · 1146 阅读 · 0 评论 -
SQL练习题(二)
作用:查出指定条件后的进行排名,条件相同排名相同,排名间断不连续。说明:和rank() over 的作用相同,区别在于dense_rank() over 排名是密集连续的。两种解法:我想到的就是最简单的分页,直接用现成的limit就可以返回我们想要的数据。该表的每一行都包含了一场比赛的分数。第二步:把上面的结果和我们的scores表关联,最终得到没去重的排序。@rank_no:=@rank_no+1,累加@rank_no的值。@rank_no:=0,设置变量@rank_no的初始值为0。原创 2023-06-26 09:34:01 · 226 阅读 · 0 评论 -
SQL力扣练习(十)
首先用自定义变量@count为大于等于100的排序,然后从第一步的表中筛选出数量大于三的,如下图,这里重点是从大到小排序。然后再筛选即可得到答案。原创 2023-08-08 14:20:53 · 674 阅读 · 0 评论 -
SQL力扣练习(九)
表:Orders在 SQL 中,Order_number是该表的主键。此表包含关于订单ID和客户ID的信息。查找下了的客户的。测试用例生成后,比任何其他客户下了更多的订单。查询结果格式如下所示。原创 2023-07-31 11:33:00 · 405 阅读 · 0 评论 -
SQL力扣练习(八)
其 tiv_2015 与其他投保人不同,并且位置与第三条记录相同,这也导致了第三条记录不符合题目要求。tiv_2015 是该投保人在 2015 年的总投保金额,tiv_2016 是该投保人在 2016 年的总投保金额。因此,结果是第一条记录和最后一条记录的 tiv_2016 之和,即 45。tiv_2015 值为 10 与第三条和第四条记录相同,且其位置是唯一的。写一个查询语句,返回一个客户列表,列表中客户的推荐人的编号都。该表的每一行都表示雇员的名字、他们的部门和他们的经理的id。原创 2023-07-28 14:06:39 · 545 阅读 · 0 评论 -
SQL力扣练习(七)
Tripsid 是这张表的主键。这张表中存所有出租车的行程信息。每段行程有唯一 id ,其中 client_id 和 driver_id 是 Users 表中 users_id 的外键。status 是一个表示行程状态的枚举类型,枚举成员为(‘completed’, ‘cancelled_by_driver’, ‘cancelled_by_client’)。Usersusers_id 是这张表的主键。原创 2023-07-25 09:59:29 · 1124 阅读 · 0 评论 -
SQL力扣练习(六)
到现在,我对这个自定义函数的用法才稍微熟练了一点,这自定义函数的出现,可以让sql变的更加灵活。CASE这个意思是,如果@pre等于当前的DepartmentId则@rank加一,否则更新@pre的值且@rank=1。这个@rank的值命名为RANK字段。用这个进行排序的关键就是from 的表需要有序。FROM (## 自定义变量RANK, 查找出 每个部门工资前三的排名CASE(## (部门,薪水)去重,根据 部门(升),薪水(降) 排序)te)t。原创 2023-07-07 15:31:44 · 733 阅读 · 0 评论 -
SQL力扣练习(五)
此表的每一行都表示员工的ID、姓名和工资。它还包含他们所在部门的ID。编写一个 SQL 查询,找出所有从不订购任何东西的客户。departmentId是Department表中ID的外键。| 列名 | 类型 |编写SQL查询以查找每个部门中薪资最高的员工。| 列名 | 类型 |此表的每一行都表示一个部门的ID及其名称。id是此表的主键列。id是此表的主键列。原创 2023-07-06 15:26:47 · 508 阅读 · 0 评论 -
SQL力扣练习(四)
EmployeeId是该表的主键。该表的每一行都表示雇员的ID、姓名、工资和经理的ID。编写一个SQL查询来查找收入比经理高的员工。Employee 表:Joe 是唯一挣得比经理多的雇员。在这里普及一下连接小知识。1.Left join:即左连接,是以左表为基础,根据ON后给出的两表的条件将两表连接起来。结果会将左表所有的查询信息列出,而右表只列出ON后条件与左表满足的部分。左连接全称为左外连接,是外连接的一种。原创 2023-07-04 09:29:33 · 595 阅读 · 0 评论 -
SQL力扣练习(三)
下面也是力扣的同学写的,我简要说明一下思路,首先也是分为两部分,第一部分查出数据,第二部分负责筛选去重,rn是给按id排序加一下序号,作者应该是考虑到id不连续的情况。然后在去重的过程中,根据num和rn-id_rn排序,这里的第二个排序又可能不太好看出,因为上面的rn和id_rn都是根据id分组的,所以如果相减的话,他们也是同步的,而我们的num也不会重复,所以这样分组出来的数据是正确的。需要注意的是lag 取得是当前行之前的数据,lead 取的实当前行之后的数据。id 是这个表的主键。原创 2023-06-28 14:22:10 · 1168 阅读 · 0 评论 -
sql力扣练习(一)
sql力扣练习原创 2023-06-21 10:05:46 · 1132 阅读 · 0 评论