脚本:
create table tab
(
name varchar2(20),
code varchar2(20)
);
insert into tab values('移动号卡10元','0101');
insert into tab values('移动号卡20元','0101');
insert into tab values('移动号卡30元','0101');
insert into tab values('移动号卡40元','0101');
insert into tab values('联通号卡10元','0102');
insert into tab values('联通号卡20元','0102');
insert into tab values('联通号卡50元','0102');
insert into tab values('联通号卡100元','0102');
insert into tab values('QQ游戏点卡10元','0103');
insert into tab values('QQ游戏点卡20元','0103');
insert into tab values('QQ游戏点卡30元','0103');
insert into tab values('QQ游戏点卡40元','0103');
insert into tab values('QQ游戏点卡50元','0103');
insert into tab values('QQ游戏点卡60元','0103');
select * from tab;
1 移动号卡10元 0101
2 移动号卡20元 0101
3 移动号卡30元 0101
4 移动号卡40元 0101
5 联通号卡10元 0102
6 联通号卡20元 0102
7 联通号卡50元 0102
8 联通号卡100元 0102
9 QQ游戏点卡10元 0103
10 QQ游戏点卡20元 0103
11 QQ游戏点卡30元 0103
12 QQ游戏点卡40元 0103
13 QQ游戏点卡50元 0103
14 QQ游戏点卡60元 0103
我想按code列分组,然后在每个分组中随机取一条记录,如何实现啊?
select name, code
from (select tab.*,
row_number() over(partition by code order by dbms_random.random) rn
from tab)
where rn = 1
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21220558/viewspace-590889/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/21220558/viewspace-590889/