Oracle按某个字段分组获取每个分组第一行数据

2023-03-25 496点热度 0人点赞 0条评论

需求说明

需要在某个表筛选出:按照某个字段分组、分组后的每一个分组的第一行数据

SQL实现

例如一张student学生表,按照学生所在的班级,筛选出每个班的一个学生

select *                      -- column names as required!
from (
  select id, name, class_no
  , row_number() over ( partition by class_no order by DBMS_RANDOM.RANDOM ) rn_
  from t_student
) 
where rn_ = 1

-- 这里order by 是随机选出了一个每个班的一个学生,也可以根据实际需求,按照某个字段排序,筛选出按规则的第一个数据

 

admin

这个人很懒,什么都没留下

文章评论

您需要 登录 之后才可以评论