• Row_number() OVER(PARTITION BY xxx ORDER BY XXX)分组排序


    --//创建一个信息表
    CREATE TABLE user_student(id decimal(18,0) identity(1,1),st_name nvarchar(30),class nvarchar(10),score decimal(18,2))
    --//插入测试数据============start===================
    insert into user_student(st_name,class,score)
    values('张三','','90')
     
     
    insert into user_student(st_name,class,score)
    values('张四','','65')
     
    insert into user_student(st_name,class,score)
    values('张五','','88')
     
    insert into user_student(st_name,class,score)
    values('李三','','97')
     
    insert into user_student(st_name,class,score)
    values('李四','','88')
     
    insert into user_student(st_name,class,score)
    values('李五','','78')
     
    insert into user_student(st_name,class,score)
    values('王三','','86')
     
    insert into user_student(st_name,class,score)
    values('王四','','69')
     
    insert into user_student(st_name,class,score)
    values('王五','','59')
    --//插入测试数据============end===================
    select * from user_student
     
    --//每个班级分数前两名的学生信息
    SELECT ST_NAME,CLASS,SCORE
    FROM (
    SELECT Row_number() OVER(PARTITION BY CLASS ORDER BY SCORE DESC) AS NUM,*
    FROM user_student
    ) AS T
    WHERE NUM<=2

    表内数据:                   输出结果:

  • 相关阅读:

    2018.10.18 常用API部分测试题
    2018.10.18课堂笔记HashMap之前
    JavaScript 的 this 原理
    vue h5转换uni-app
    Vue.js 3.0 新特性预览
    ES6模块与CommonJS的区别
    同源策略和跨域问题
    一口气了解 babel
    媒体查询,移动端常见布局以及其他
  • 原文地址:https://www.cnblogs.com/BeInNight/p/4979787.html
Copyright © 2020-2023  润新知