SQL面试经典问题-开窗函数

yumo6661个月前 (03-30)技术文章19
  • 分组取每组最大值

  • 案例:按课程号分组取成绩最大值所在行的数据

    select 
        学号,
        课程号,
        max(成绩) as 最高分,   
    from a
    group by 课程号


  • 分组取每组最小值
  • 案例:按课程号分组取成绩最小值所在行的数据(意思是每个课程最小值的学生信息都要出来)

    关联子查询

    select * from score a
    where 成绩=(
    select min(成绩) from score b
    where b.课程号=a.课程号
    )


    查询各科成绩前两名的记录(topN),一定要嵌套一层,不能直接取,因为where比select先执行

    select *
    from (select 
                *,
                dense_rank() over (partition by ID  order by score desc) as 排名
           from
           score)t
    where t.排名<=2


    查找单科成绩高于该科目平均成绩的学生名单

    第一种解法

    select 姓名
    from 
        成绩表
        left join 
        (select 科目,
            avg(score) as 平均成绩
         from 成绩表
        group by 科目)t
    where 成绩表.成绩>t. 平均成绩

    第二种解法

    select * from (
    select *,
    avg(成绩) over (
    PARTITION by 课程号) as 平均成绩
    from score)as a
    where 成绩>平均成绩

    相关文章

    金三银四,金九银十面试必备的SQL题,你会吗?

    金三银四,金九银十是面试的最佳时机,有同学在面试测试岗位时经常遇到一些SQL难题,问到就两眼转动,给面试官一种不靠谱的感觉,这样的面试过程注定是要经历挫折的。老师在这里为大家准备了一些SQL面试经典题...

    200场面试总结出的大厂SQL常考题(附答案)

    小伙伴们,大家好。今天给大家分享一些在数据分析岗位面试中,常被问到的一些SQL题。首先,大家先思考一下题目,然后再看后面的参考答案。Q1:几种JOIN连接方式的区别?Q2:几种排序窗口函数的区别?Q3...

    初学者最热门和棘手的10个T-SQL问题

    T-SQL有助于在物理或虚拟实例中创建和管理对象,以及插入、检索、修改和删除数据表。国际标准化组织(ISO)和美国国家标准协会(ANSI)发布的SQL标准定义了一种软件语言,Transact-SQL就...

    大厂面试SQL题(三) ——连续登陆(含间隔)(字节)

    承继上篇文章 大厂面试SQL题(一) ——连续登陆,阐述了最为简易的连续登录题目。然而,倘若在面试题目中增添难度,将 隔天统计问题 纳入考量,该作何处理呢?沿用第一篇题目的场景实例:(1)存在一张用户...

    Mysql 常见的10道面试题

    1、介绍一下事务的4个特性ACID事务特性含义解释Atomicity原子性同一个事务中的多条语句不可分割,要么全部成功,要么全部失败,不存在部分成功、部分失败Consistency一致性事务从一个一致...

    SQL语句常见面试题(上)

    描述主键、外键、超键是什么- 超键(super key): 在关系中能唯一标识元组的属性集 - 候选键(candidate key): 不含有多余属性的超键称为候选键。也就是在候选键中,若再删除属性,...