首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

取得每个班的前两名学生

2012-12-20 
获得每个班的前两名学生群里有个朋友问了一个是sql查询的问题:“获得每个班的两名学生姓名 和班级编号” 要

获得每个班的前两名学生

群里有个朋友问了一个是sql查询的问题:“获得每个班的两名学生姓名 和班级编号” 要求每个班的学生要在一起 , 我没有构建相应的表,通过项目中现有的用户表,进行了查询,sql如下:

SELECT user_name , sp_id , rank FROM (
SELECT u.user_name ,u.sp_id, row_number() OVER(PARTITION BY u.sp_id ORDER BY ROWID  ) rank
FROM nm_user_info u ) WHERE rank <= 2

nm_user_info 用户表
user_name 用户名称(学生姓名)
sp_id 用户所属企业的编号(班级编号)
rank 是一个排序标号
row_number() OVER  给出排序编号
PARTITION BY 按什么分割

热点排行