distinct只对一列去重 怎么将查询出来的数据类似sql一样的distinct去重某个字段?
怎么将查询出来的数据类似sql一样的distinct去重某个字段?
SELECT A, B, C FROM TABLE_NAME AA WHERE ROWID = (SELECT MIN(ROWID) FROM TABLE_NAME BB WHERE BB.A = AA.A GROUP BY BB.A) 有点混乱,还不如说是某列重复时取第一条数据,你看看这是不是你要的
对单个字段的结果进行去重,用distinct执行效率快,还是用group by快?
那要看字段有多大。 distinct方式就是两两对比,需要遍历整个表。 group by分组类似先建立索引再查索引,所以两者对比,小表destinct快,不用建索引。大表group by快。一般来说小表就算建索引,也不会慢到哪去,但是如果是TB级大表,遍历简直就是灾难。 所以很多ORACLE项目都禁止使用distinct语句,全部要求替换成group by。
oracle中查询中单表多字段去重,怎么实现?
其实思路就是你的过程:1. 首先去重(用distinct) select distinct a,b,c from 表A2. 然后查出a、b列(子查询) select a,b from (select distinct a,b,c from 表A) test或者更简单的(用group by),可以试试,我不确定。select a,bfrom 表Agroup by a,b,c
distinct只对一列去重 distinct去重多个字段 distinct对两个字段去重
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。