JobHopper-SQL
SpartanLaser
这个作者很懒,什么都没留下…
展开
-
JobHoppoer-SQL-570. Managers with at Least 5 Direct Reports
发现只是盲点对于 aggregated stats 的 过滤,不需要费劲的加一层 WHERE COUNT_Id > N,而是直接用 HAVING predicate总结: GROUP BY 之前用 WHERE; 之后用 HAVING,文章莫名其妙,我居然用了SUM(id),而不是 COUNT(id),debug了半天没看出来。# Write your MySQL query statement below# SELECT name FROM# (SELECT manager原创 2022-03-30 15:45:32 · 302 阅读 · 0 评论 -
JobHoppoer-SQL-550. Game Play Analysis IV
这题整了很久,找到了几个知识盲点,补一下:1. 怎么在SQL 语句中 取到 两个变量的值 并进行计算?这个题型没遇到过,有点生疏2. Join/LeftJoin 之后 两个表的 具体形状和内容,其实是没有 准确的概念,只有大概印象,关键还是错误印象。下方是 正确代码,不是自己写的。通过 SELECT * FROM 才看清楚了 Join/LeftJoin 之后表的样子。- LeftJoinJoin:这样就看得很清楚了,Join 是只取交集,也就是说Join 后的表...原创 2022-03-30 12:48:56 · 311 阅读 · 0 评论 -
JobHoppoer-SQL-181. Employees Earning More Than Their Managers
Easy question, solved in 5 mins.Only issue: did not rename the resule column as required in the question.SELECT E.name as 'Employee' FROM (Employee E JOIN Employee M ON E.managerId = M.id)WHERE E.salary > M.salary;原创 2022-03-26 13:00:58 · 350 阅读 · 0 评论 -
JobHoppoer-SQL-180. Consecutive Numbers
挺有意思的一道题,通过 某一 column 上下相邻 row 之间的关系,衍生出另一个行,所以要用到 UDF 类似的东西。思路跟 Rank 那题类似:JobHoppoer-SQL-178. Rank Scores_SpartanLaser的博客-CSDN博客考点:- 定义变量: 在 From 后进行 定义和初始化- SQL 中 条件语句的写法- 每经过一行就要对遍历 进行 更新,这里唯一需要 tracking的变量就是 previousNum.SQL 代码,我也是写了一会的,没有参考原创 2022-03-26 12:49:40 · 373 阅读 · 0 评论 -
JobHoppoer-SQL-178. Rank Scores
很有代表性的一道题类型:从已有的 columns 中 衍生出 新的 column;需要UDF;但是 计算的逻辑 不是简单 加减乘除,UDF 的设计需要一些 算法,有一点点 动态规划。考点:- 定义 变量- 定义lambda 函数- 复杂度的考察-- An intuitive way to get the Rank column. ORDER BY score, then go row by row to assign the value of Rank for each ro.原创 2022-03-26 02:44:29 · 867 阅读 · 0 评论 -
JobHoppoer-SQL-177. Nth Highest Salary
和上一题一样,是更加 general的情况。上一题:https://blog.csdn.net/laserljy123/article/details/123726837考察点:- LIMIT K, N == LIMIT N OFFSET K- ORDER BY _ DESC# Write your MySQL query statement below-- The below one does not give an empty list when there is 1 ro原创 2022-03-25 11:13:28 · 529 阅读 · 0 评论 -
JobHoppoer-SQL-176. Second Highest Salary
- 要求返回列表,所以最外层 又包了一层 SELECT- 得到第 n 行,关键词 LIMIT (n-1) OFFSET 1,或者简写成 LIMIT (n-1), 1;- SELECT DISTINCT 避免 duplicates.- ORDER BY col_name DESC 降序排列。# Write your MySQL query statement below-- The below one does not give an empty list when there is原创 2022-03-25 09:01:32 · 330 阅读 · 0 评论