前言
这段时间,刷了LeetCode的数据库题目,挺有感触的。在刷这些题之前,我只写过一般的增删改查,尤其是查询操作,使用的也不是很灵活,只知道最基本的用法。
去刷了题目之后真的学到了很多不论是新的知识点还是一些组合用法,总之对数据库操作尤其是dql的使用更加熟练了。感谢其他leetcoder对各种知识点和解题套路的分享,学会这些小操作后,写sql头不疼了,腰不酸了,睡得着了,吃饭也更香了。
根据这些题,我总结了一些常用的知识点、小技巧以及部分有代表性的题解。
这篇文章就来分享一些有价值的题解。题目有些多,这篇先展示其中七题的题解。
剩下的在这里
项目员工II
题目链接
这个题目如果保证员工最多的项目仅有一个或者只需要输出其中的一个就会变得非常简单。
但是问题就在于这个查询结果存在多解,即会有多个项目的员工数量并列第一。
所以我们先要查询出员工最多的项目有多少员工,接着,我们需要从所有的项目里在查询出所有的员工数量大于等于这个数字的项目。
tips:需要使用到all关键字
select
project_id
from
project
group by
project_id
having
count(*) >= all(
select
count(*)
from
project
group by
project_id
)
;
销售分析I
题目链接
同上一题相似,这个题也需要我们找出统计数字最高的元素,并且,存在并列的情况: