美文网首页
SQL重要题型总结

SQL重要题型总结

作者: 咸鱼干lili | 来源:发表于2018-10-24 22:32 被阅读0次

类型一:按照某个组分类计算该组最高/最低的记录

  1. Department Highest Salary
184

解法一

​ 直接计算每个组的最高/最低记录

​ 使用IN做匹配

select 
    d.Name AS 'Department',
    e.Name AS 'Employee',
    e.Salary
from 
    Employee e inner join Department d
    on e.DepartmentId = d.Id
where 
    (e.Salary, e.DepartmentId) IN
    (select 
        max(Salary), DepartmentId
    From 
        Employee e2
    group by DepartmentId )

解法二

​ 使用ALL()函数

​ 需要将e和e2连接起来,限制于同一个部门进行比较

​ 不需要group by

select 
    d.Name AS 'Department',
    e.Name AS 'Employee',
    e.Salary
from 
    Employee e inner join Department d
    on e.DepartmentId = d.Id
where 
    e.Salary >= ALL(
    select 
        Salary
    from 
        Employee e2
    where 
        e.DepartmentId = e2.DepartmentId
    )

类型二:按照某个组分类计算该组最高/最低的前三名记录

解法一

​ 利用两个employee表连接, count(e2.Salary) < 3

select 
    de.Name AS 'Department',
    e.Name AS 'Employee',
    e.Salary
From
    Employee e 
    inner join 
    Department de
    on e.DepartmentId = de.Id
where 
     (select 
        count(distinct e2.Salary) 
     from 
        Employee e2
     where 
        e.Salary < e2.Salary 
        and e.DepartmentId = e2.DepartmentId) <= 3 # 前3个, 
;

解法二

​ 利用Dense_Rank建立一张有排序的表

​ 再利用排序筛选

select Department, Employee, Salary from
(select 
    de.Name AS Department, 
    e.Name AS Employee, 
    e.Salary
    DENSE_RANK() over(partition by de.Name order by e.Salary Desc) AS Rank
from 
    Employee e inner join Department de
    on e.DepartmentId = de.Id) a
where Rank <= 3

SQLZOO

https://sqlzoo.net/wiki/Nested_SELECT_Quiz

  1. Select the code that shows the countries belonging to regions with all populations over 50000

相关文章

  • SQL重要题型总结

    类型一:按照某个组分类计算该组最高/最低的记录 Department Highest Salary 解法一: ​ ...

  • SQL重要语法总结

    COALESCE coalesce(expression_1, expression_2, ...,express...

  • 高考数学十八个抢分热点,拿高分必看的总结推论!

    高考数学的学习不仅是要多做题,多掌握重要题型,更重要的是要熟练掌握重要的公式结论,这里给大家总结了高考数学18个抢...

  • 221230复盘 基本功慢慢来坚持做

    ?经验萃取+知识沉淀 001 开始总结题型 以前也有进行过题型总结,但是是每次备课时进行的,没有一个专门的文件来汇...

  • 雅思阅读填空题如何破?

    朗阁海外考试研究中心 张静 雅思阅读考试题型众多,而在众多题型当中最为重要的一类题型就是填词类题型,这类题型几乎是...

  • sql注入总结(转载)

    sql注入总结(一)--2018自我整理 SQL注入总结 前言: 本文和之后的总结都是进行总结,详细实现过程细节可...

  • 倒数31天

    时间过得特别快,今天上午总结了学校的题型和偏向方向,自己给自己总结了押题,最重要的是要赶快记到脑子里,这样分数才能...

  • 考研英语排序题备考攻略

    一、题型介绍 排序题是英语(一)新题型的第二个重要题型,也是难度最高的题型,历史上考过5次,分别是:2010年、2...

  • 最后的一零五 数学 整理

    一 集合及其运算 题型一: 题型二: 题型三: 重要知识: 1 集合之间的关系用包含与被包含,元素与集合之间的关系...

  • SQL 常用优化手段总结 - 索引的应用

    系列文章回顾SQL 常用优化手段总结 - 分析 SQL 语句的一般步骤SQL 常用优化手段总结 - 索引的应用SQ...

网友评论

      本文标题:SQL重要题型总结

      本文链接:https://www.haomeiwen.com/subject/kmsftqtx.html