www.zhnq.net > OrAClE 很大的表DistinCt查询

OrAClE 很大的表DistinCt查询

distinct机理就是两个值逐一对比,需要遍历整个表,表超大时简直就是灾难.group by是先统计再查,也就是先建索引再查询,表越大效率越高.很多oracle项目都禁止使用distinct语句,全部用group by替代

其实思路就是你的过程: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

select distinct x,y ferom t;select x,y from t group by x,y;select * from t group by x,y having count(*)>1 ;--查出有重复记录的数据,如果having count(*)=1 是查出没有重复记录的数据select * from t a1 where rowid=(select max(rowid) from t a2 where a2.x=a1.x and a2.y=a1.y); --利用rowid唯一,适用于少量重复数据还有 rank over(partition)这个函数你也可以好好看哈哦

select distinct 列1,列2,列3 from table;其中distinct就是去掉重复的关键字

group by 高一些,.如果你要过滤重复的话,建议使用子查询,distinct效率很低的.

1. 使用DISTINCT关键字进行查询SELECT DISTINCT COL1, COL2 FROM A;2. 使用GROUP BY去掉重复记录SELECT COL1, COL2 FROM A GROUP BY COL1, COL2;

如果是oracle sql developer的话,在查询结果哪儿,用右键,可以导出成excel的.如果用pl/sql developer、toad之类的,也可以将查询结果导出成excelpl/sql developer还可以直接copy查询结果,到excel中粘贴.如果用navicat for oracle,可以使用导出的方法.

1、distinct 关键字的用法:distinct 关键字后面的字段组合去重 distinct 必须select distinct id from test结果 ;根据id 去重select distinct id,name from test2、group by 分组去重select id,name from test group by id,name结果:根据id,name 组合去重3

方法一:可以通过group by 进行分组.sql:select username,count(username) from tablename grop by username; 解释:以上sql就是通过分组函数读取出tablename表中username的值和每个不同值的统计个数.方法二:可以通过distinct函数 进行去重查询.sql:select distinct username from tablename 解释:本sql就是查询出所有的tablename表中的username值(不重复).

使用如下语句:其中a是文本字段,b是数字字段select a, max(b) from (select distinct a,b from table) group by a

网站地图

All rights reserved Powered by www.zhnq.net

copyright ©right 2010-2021。
www.zhnq.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com