站内搜索

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

--//创建一个信息表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,SCOREFROM (SELECT Row_number() OVER(PARTITION BY CLASS ORDER BY SCORE DESC) AS NUM,*FROM user_student) AS TWHERE NUM<=2

  • 上一篇:导数中的最小化日志记录:背景和理论_MySQL
  • 下一篇:SQL Server 利用锁提示优化Row_number()