- 博客(22)
- 收藏
- 关注
原创 601. 体育馆的人流量
601. 体育馆的人流量这题的思路参考评论区,很精奇的思想,主要分为三种情况考虑进来,以a的id最小、b的id最小、c的id最小这三种进行检索查询,其中由于这三种情况的组合可能出现重复,所以需要distinct去重,主题采用笛卡尔积的形式进行关联。题解:SELECT distinct a.* FROM Stadium a,Stadium b,Stadium cWHERE a.people >= 100 and b.people >= 100 and c.people >=
2021-05-27 10:38:12 120
原创 596. 超过5名学生的课
超过5名学生的课思路:注意HAVING关键字,HAVING 配合 GROUP BY 使用,对分组后的数据进行限制,可以使用聚合函数。SELECT class FROM courses GROUP BY class HAVING COUNT(DISTINCT student ) >= 5
2021-04-06 15:45:19 110
原创 595. 大的国家
大的国家代码实现1:SELECT World.name,World.population,World.area FROM World WHERE World.area > '3000000' OR World.population > '25000000'代码实现2:SELECT name,population,area FROM World WHERE area > '3000000'UNION SELECT name,population,area FROM W.
2021-04-06 15:32:58 71
原创 262. 行程和用户
行程和用户思路:本题主要是需要注意几个函数的运用,1、ROUND()是四舍五入的函数,前面的参数是具体的数值,后面的是保存位数。2、SUM()是求和的函数,本题运用IF()进行判断。首先需要根据时间进行分组,然后需要注意条件以时间为期限,为了得到一张整体有所关联的表,需要根据对应的关联条件进行连接,采用内连接的形式得到一张总表。查询中根据相关函数进行查询得到。具体代码:SELECT t. Request_at AS `Day`, ROUND( SUM( .
2021-04-06 14:57:54 98
原创 197. 上升的温度
上升的温度思路:对于此题需要用到MYSQL中DATEDIFF()的函数,此函数可以计算出两个日期间的天数。题解:SELECT w1.id FROM Weather w1 LEFT JOIN Weather w2 ON DATEDIFF(w1.recordDate,w2.recordDate) = 1 WHERE w1.temperature > w2.temperature ...
2021-04-06 13:57:56 54
原创 196. 删除重复的电子邮箱
删除重复的电子邮箱思路:需要根据查询区分删除比较大的重复邮箱的id。第一种可以采用内连接的形式来作比较。后来突发奇想的觉得可以使用关联查询的形式。实现一:内连接DELETE p1 FROM Person p1,Person p2WHERE p1.Email = p2.Email AND p1.Id > p2.Id实现二:关联查询代码实现:DELETE p1 FROM Person p1 LEFT JOIN Person p2 ON p1.Email = p2.Email W.
2021-03-31 12:26:23 253
原创 187. 重复的DNA序列
重复的DNA序列Sql中突然出现了一题Java,应该很鬼畜吧,就给他做了。开始做本题目的时候没什么思路,后来看评论区才了解,感谢评论区的大佬,发此篇博客只是记录学习成果。思路:由于Set中不存放重复的元素,所以可以使用Set。通过判断HashSet的存在元素来进行区分。本题的题意是解决任意长度相同的问题,本题中以定长10来解决。具体题目如下。测试代码如下:package com.leecode.Study;import java.util.ArrayList;import jav.
2021-03-31 09:24:30 88
原创 185. 部门工资前三高的所有员工
部门工资前三高的所有员工思路:审题,注意不是按照部门进行区分而是求得排名前三的工资情况SELECT d.Name AS Department,e1.Name AS Employee,e1.Salary AS Salary FROM Employee e1JOIN Department d ON e1.DepartmentId = d.IdWHERE 3 > ( SELECT COUNT(DISTINCT e2.Salary ) FROM Employee e2 WHERE .
2021-03-30 17:14:01 72
原创 184. 部门工资最高的员工
部门工资最高的员工思路使用JOIN 将两表数据关联,再根据条件查询得到按部门分类,且工资最高的部门。Select d.Name Department ,e.Name Employee ,e.Salary Salary FROM Employee e JOIN Department d ON e.DepartmentId = d.Id WHERE (e.Salary,d.Id) IN(SELECT Max(Salary),a.DepartmentId FROM Employee a G.
2021-03-30 17:11:26 67
原创 183. 从不订购的客户
从不订购的客户思路:得了解NOT IN这题就好做了SELECT `NAME` AS Customers FROM Customers WHERE Id NOT IN( SELECT CustomerId FROM Orders )
2021-03-30 14:38:02 57
原创 182. 查找重复的电子邮箱
查找重复的电子邮箱思路:我首先想到的是采用自连接的形式,通过查找邮箱相同,需要注意额外的需要排除相同id出现的情况。第二种采用Group By的形式。相比较内连接的形式耗时更少方法一:内连接的形式SELECT DISTINCT p1.Email FROM Person p1, Person p2 WHERE p1.Email = p2.Email AND p1.Id != p2.Id方法二:GROUP BYSELECT Email FROM (SELECT Email,count(.
2021-03-30 14:02:20 323
原创 181. 超过经理收入的员工
超过经理收入的员工思路:起初想法比较复杂,想着需要取出员工中经理的ManageId去查询,后来发现复杂化了,直接可以通过获取两次信息进行比对得到。(1)实现1此处a表示的是员工、b表示的是经理代码实现:SELECT a.name AS Employee FROM Employee a,Employee bWHERE a.ManagerId = b.Id AND a.Salary > b.Salary(2)实现2 使用JOINSELECT a.name AS Employ.
2021-03-30 13:39:12 60
原创 180. 连续出现的数字
连续出现的数字思路:主要是对连续数字的统计,首先要得到连续的num出现三次且值相等,注意是连续,然后查询的结果需要去重(连续出现说明id也是连续的)实现代码:SELECT DISTINCT L1.num AS ConsecutiveNums FROM `Logs` l1,`Logs` l2,`Logs` l3 WHERE l1.Id = L2.Id - 1 AND l2.Id = l3.Id -1 AND l1.num = l2.num AND l2.num = l3.num...
2021-03-30 11:05:45 64
原创 178. 分数排名
分数排名思路:此题需要按照两步进行,首先查询出降序得到的分数,其次应该根据统计得到大于或者等于当前数的总数1、先通过查询得到降序排列的分数select Score from Scores order by Score desc2、再通过计算排名X:为当前传入的分数select count(distinct b.Score) from Scores b where b.Score >= X实现代码:select a.Score,(select count(distinct .
2021-03-29 17:27:00 69
原创 177. 第N高的薪水
第N高的薪水通过mysql中的函数的形式运行,指定第几高的形式进行查询需要注意的几个点:1、薪水一样的问题需要避免,可以使用group by来避免重复2、需要定义从第几个开始,因为这边采用先排序后分页,所以如果为第n大的值,需要定义Set n := n-1...
2021-03-29 17:02:12 53
原创 176. 第二高的薪水
第二高的薪水思路:注意查询结果没有则为null第一次尝试:考虑欠缺,重复的情况未考虑,排序默认应该是升序的,而且需要额外考虑一种情况,如果表中只有一个数据将被判定错误,所以可以使用嵌套查询的形式。成功界面:select(select distinct Salary from Employee e order by Salary desc limit 1,1) AS SecondHighestSalary...
2021-03-29 16:42:46 118 1
原创 175. 组合两个表-力扣练习
组合两个表思路:本文中提出无论如何都需要满足以下字段,所以采用关联查询的形式包含该字段,只不过结果为null代码如下:select p.FirstName,p.LastName,a.City,a.State from Person p left join Address a on p.PersonId = a.PersonId;...
2021-03-29 16:18:45 57
原创 分布式-SpringCloud-Eureka注册中心-SpringBoot
分布式-SpringCloud-Eureka注册中心-SpringBoot前言:随着互联网的发展,网站规模不断扩大,所以单体服务无法满足日常所需,可以采用将各个任务模块分到不同的服务器中,但是例如用户模块需要使用订单模块,位于不同服务器的就涉及到RPC,所以就需要注册中心,将两个模块都注册在注册中心中,用户模块则可以在注册中心中找到想要的。下面就涉及到用户买票需要调用到卖票的模块的一些服务。SpringCloud-Eureka注册中心-SpringBoot分布式-SpringCloud-Eureka
2020-11-23 10:38:10 176
原创 Spring-Boot-原理-自定义starter
Spring-Boot-原理-自定义starter前言:spring-boot最强大的地方在于将所有的场景均抽取成了starter,也就是场景启动器,通过引入场景启动器就能使用其功能,即使是这样也不能完全保证后期的需求,所以自定义的场景启动器就很重要。而且当自己编辑好starter的时候,其他人也可以通过导入依赖的方式直接使用。创建空白项目,在此项目中分别加入使用maven从创建项目和使用Spring Initializr创建项目的两个module。此处以maven创建的模块com.atguigu.s
2020-11-16 10:18:19 96
原创 2020-11-15
SpringBoot整合Mybatis首先创建项目,这边使用的springBoot的版本为2.2.11,因为使用的是idea2020版,所以在初始化界面选上springWeb、jdbc、mybatis、还有mysql;但需注意的是我这边装的mysql的版本为5.5,所以需要在依赖中设置版本,以及jdbc、mybatis所适配的版本,由于项目中缺少日志配置文件,系统会报错所以将其导入。pop.xml文件对应如下:<?xml version="1.0" encoding="UTF-8"?>
2020-11-15 18:26:23 77
原创 SpringBoot数据访问-整合Druid,配置数据源监控
SpringBoot数据访问-整合Druid,配置数据源监控在maven中导入druid在配置文件中修改数据源信息,将默认的数据源改为Druid。我这边springBoot的版本是2.4.0需要注意的是在配置文件中指定 initialization-mode: always,因为我的mysql是5.5的版本,与springBoot默认加载的版本不符合所以需要在maven中指定版本具体如下 <dependency> <groupId>org.spri
2020-11-15 13:48:21 173
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人