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

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

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

    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 成绩>平均成绩

    相关文章

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

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

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

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

    175道2021新版Go语言面试题(含大厂面试题、常见问题解析等等)

    2021年的一个报告显示: Go 是程序员最想学的编程语言之一,而且现在不管大厂小厂,Go相关的岗位的确是越来越多,很多公司都在拥抱Go语言!现在正值金九银十,现在一翻开消息列表,就有不少人问:现在外...

    MYSQL经典面试题汇总

    1.非聚簇索引一定会回表查询吗?不一定,这涉及到查询语句所要求的字段是否全部命中了索引,如果全部命中了索引,那么就不必再进行回表查询。举个简单的例子:假设我们在员工表的年龄上建立了索引,那么当进行的查...

    十个你必须会的mysql面试题

    什么是SQL?结构化的查询语言(Structured Query Language)简称SQL,是一种数据库查询语言。作用是用于存储数据、查询、更新和管理关系型数据库SQL中的约束有哪几种?1、非空约...

    软件测试面试被问这些SQL语句,不会怎么办?于是推出这套SQL教程

    作为一名软件测试人员,学习SQL语句是必备。为什么呢?Kitty小编告诉你:首先,从软件的三层架构谈起,大家都知道现在的软件基本要么是C/S架构,要么是B/S架构,但无论是C/S架构还是B/S架构最终...