需求:想根据某一个字段进行分组,然后取出所有的列数据,在mysql 中,可以直接通过 group by 进行相应的操作获取数据,
但是在ORACLE中,所取的字段必须要与group by 中相一致,才能进行读取操作,因为分组后的其他字段,oracle 并不知道要返回哪一个,但是这种需求又是存在的。怎么办,找到的解决方案:
-- 格式
select *
from (select t.*,
row_number() over(partition by 分组字段 order by rownum) rn
from 表名 t
where 条件语句)
where rn = 分组中的第几条;
-- xuxi
select *
from (select t.*,
row_number() over(partition by ext_word order by rownum) rn
from BASE_EXT_DICT t
--where -- 此处可以加条件
)
where rn = 2;--2表示:分组后相同数据的第二条