MYSQL/ORACLE多字段去重-根据某字段去重

通过百度上的答案多数无效
自己搞了个
使用oracle row_number()函数,给每个同名的加一个序号,最后筛选第n个想同的即可
在这里插入图片描述
oracle与mysql不同
1.oracel 多字段distinct(字段名去重) group by去重失效

可以用row_number() over(partition) 给同名列加个序号列,搜索序号为1的数据这种方式mysql也可用
row_number() over(partition by 字段名 order by 字段名) 序列别名

SELECT id,name ,row_number() over(partition by name order by id) as groupindex from A;
外套一层select 筛选出重复的第一条数据就行
这里面的order by可以去掉

你可能感兴趣的:(java,oracle)