sql优化
贵哥的编程之路(热爱分享)
IT讲师(csdn研修院 网易云课堂 51cto学堂 php中文网),努力进步中。我想看看我的巅峰在哪里。
展开
-
【LeetCode】182.寻找重复的电子邮箱
select Email from( select Email, count(Email) as num from Person group by Email) as statisticwhere num > 1;解析:代表然后根据比较要判断那个大于就输出就行了.原创 2021-09-05 22:27:52 · 722 阅读 · 0 评论 -
LeetCode-181 超过经理收入的员工---SQL语句实现及详解
思路:第一步:把一张表分解成两张表。第二步:把name去掉,因为会影响思路。第三步:匹配a.managerid = b.id,想不想等,如果相等的话,第四步:判断下salary谁的大,然后是选出名字就行了.select a.name as Employee from Employee a inner join Employee b where a.ManagerId = b.Id AND a.Salary > b.Salary;这样就能判断出那个员工的薪资超过了经理。为什么表这样设计原创 2021-09-05 22:18:37 · 771 阅读 · 0 评论 -
SQL优化:第N高的薪水
解题思路:这个一道sql函数题目,跟上一题有点一样,先n=n-1,因为从0开始的。第二:limit哪里从n开始选择当前那个。CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INTBEGINset N=N-1; RETURN ( # Write your MySQL query statement below. SELECT IFNULL((SELECT DISTINCT Salary FROM .原创 2021-09-05 12:45:15 · 770 阅读 · 0 评论 -
sql优化(第二高的薪水)
思路:第一:要确保没有重复值第二:用ifnull函数,如果有就返回数据,否则null第三:排序,选择(从头开始选择)第二个就行了select IFNULL((select distinct(Salary) from Employee order by Salary desc limit 1,1),null)as SecondHighestSalary;...原创 2021-09-05 12:39:15 · 702 阅读 · 0 评论 -
sql优化:组合两个表
select FirstName, LastName, City, State from Address right join Person on Person.PersonId=Address.PersonId;问题:第一:主要是显示person表里面的数据的话,如果是(left join)左连接就把person放在左边,如果是(right join)右连接,就把person放在右边。第二:因为表 Address 中的 personId 是表 person 的外键,所以我们可以连接这两个表来获.原创 2021-09-05 11:58:17 · 836 阅读 · 0 评论