现有一表,里面有多个重复的纪录,如
a b
1 A
1 A
2 B
2 B
我现在要的是
1 A
2 B
就是把重复的去掉,请各位大侠指教!
a b
1 A
1 A
2 B
2 B
我现在要的是
1 A
2 B
就是把重复的去掉,请各位大侠指教!
解决方案 »
- 急!在线等,如何提高某条sql更新语句的执行效率
- 删除表空间的时候无法删除
- order by中 over分析函数里面,如何判断t_customer_id的记录个数?
- 关于周报表的问题?求教!
- 再发菜鸟问题!急
- 我的服务器linux系统下的oracle访问别的oracle访问不成,但别人能访问我的,是什么原因?
- ORACLE数据库字符集问题,紧急
- 怎样用一个查询语句查询一个表中有几个字段?要求得出的是一个数字而不是字段名。
- Oracle9i存储问题:段
- 如何确定存储过程运行到哪里了?求高手
- oralce sql串里赋变量值
- Oracle函数的例子,把例子运行一遍,你会学到点东西哈!快乐就好!我刚边学边写的。
select distinct a,b from tb
有没有其他的方法啊?
select distinct t.a,t.b
from
(select '1' as a,'A' as b from dual
union all
select '1','A' from dual
union all
select '2','B' from dual
union all
select '2','B' from dual )t--------------------------------
A B
1 1 A
2 2 B
a b c d e
100 2 2 2 A
101 2 2 2 A
102 3 3 3 B
103 3 3 3 B
104 3 3 3 B
上面表中除了a字段不同外,我想是以e字段分组,去除重复的
上面我想得到分组后
100 2 2 2 A
102 3 3 3 B
也就是说分组后我只想要其中一组,也就是以e分组后A中有两条吗,除了a字段都是一样的,我只要其中一条纪录就行
B也一样,我只要其中一条纪录就行,因为除了a字段都是重复的。就是这个意思!
from
(select '100' as a,'2' as b,'2' as c,'2' as d,'A' as e from dual
union all
select '101','2','2','2','A' from dual
union all
select '102','3','3','3','B' from dual
union all
select '103','3','3','3','B' from dual
union all
select '104','3','3','3','B' from dual
)t
group by t.b,t.c,t.d,t.e------------------------------------------
A B C D E
1 100 2 2 2 A
2 102 3 3 3 B
--建表
create table aaatb(
a varchar2(10),
b varchar2(10),
c varchar2(10),
d varchar2(10),
e varchar2(10)
)
-----------------------
--创建测试数据
insert into aaatb
select '100' as a,'2' as b,'2' as c,'2' as d,'A' as e from dual
union all
select '101','2','2','2','A' from dual
union all
select '102','3','3','3','B' from dual
union all
select '103','3','3','3','B' from dual
union all
select '104','3','3','3','B' from dual--------------------------------------------
--执行SQL
select min(t.a) a ,t.b,t.c,t.d,t.e
from aaatb t
group by t.b,t.c,t.d,t.e---------------------------------------------
--删除表
drop table aaatb---------------------------------------------
--结果如下--
A B C D E
1 100 2 2 2 A
2 102 3 3 3 B
select * from (
select row_number()over (partition by e order by a)S ,a,b,c,d,e
from theTab
) where S=1
from aaatb t
group by t.b,t.c,t.d,t.e
from aaatb t
group by t.b,t.c,t.d,t.e
---------执行结果---------------------------------------
A E B C D
1 100 A 2 2 2
2 102 B 3 3 3