distinct只對一列去重 怎么將查詢出來的數(shù)據(jù)類似sql一樣的distinct去重某個字段?
怎么將查詢出來的數(shù)據(jù)類似sql一樣的distinct去重某個字段?SELECT A, B, C FROM TABLE_NAME AA WHERE ROWID = (SELECT MIN(ROWI
怎么將查詢出來的數(shù)據(jù)類似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) 有點混亂,還不如說是某列重復時取第一條數(shù)據(jù),你看看這是不是你要的
對單個字段的結果進行去重,用distinct執(zhí)行效率快,還是用group by快?
那要看字段有多大。 distinct方式就是兩兩對比,需要遍歷整個表。 group by分組類似先建立索引再查索引,所以兩者對比,小表destinct快,不用建索引。大表group by快。一般來說小表就算建索引,也不會慢到哪去,但是如果是TB級大表,遍歷簡直就是災難。 所以很多ORACLE項目都禁止使用distinct語句,全部要求替換成group by。
oracle中查詢中單表多字段去重,怎么實現(xiàn)?
其實思路就是你的過程: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