выборка записей по уникальным значениям в конкретном поле таблицы

uhazhor
Дата: 24.03.2011 23:33:42
всем привет!

есть таблица table (col1,col2...col7) - в ней есть поле col2 в котором имеются повторяющиеся записи. мне нужно получить таблицу из таблицы table но с уникальными записями в поле col2

--- создаю таблицу ---
create table my_tab(
p1 number(12),
p2 varchar2(64),
p3 number(1)
....
p7 varchar(10)
);

declare
unq char(64);
i char(16);
cursor my_cursor is
select distinct col2
from table
where col3=3;

begin
open my_cursor;
loop
fetch my_cursor into unq;
exit when my_cursor%NOTFOUND;

-- здесь возникает проблема во первых селект может вернуть две записи вместо одной а во вторых как сделать чтобы строки из таблицы table полностью добавлять в таблицу my_tab--
select * from table where col2 = unq;
insert into my_tab;
commit;
end loop;
end;

помогите довести до ума этот скрипт
--Eugene--
Дата: 24.03.2011 23:40:12
consider this:
with x as
(
	select 1 as a, 'a' as b from dual
	union all select 2, 'b' from dual
	union all select 3, 'c' from dual
	union all select 4, 'c' from dual
	union all select 5, 'd' from dual
)
select min(a), b
	from x
	group by b
uhazhor
Дата: 25.03.2011 07:43:58
--Eugene--,

объясни пжлста что делает этот код?
--Eugene--
Дата: 26.03.2011 00:36:00
uhazhor
нужно получить таблицу из таблицы table но с уникальными записями в поле col2


есть таблица THE_TABLE
create table the_table as select level col1, mod(level, 5) col2 from dual connect by level < 10;
Table created.
select * from the_table;
      COL1       COL2
---------- ----------
1 1
2 2
3 3
4 4
5 0
6 1
7 2
8 3
9 4

9 rows selected.

вот та таблица, которую нужно получить:
create table my_tab as select min(col1) col1, col2 from the_table group by col2;
Table created.
select * from my_tab;
      COL1       COL2
---------- ----------
1 1
2 2
3 3
4 4
5 0