SQL> select c1, c2
2 from x;
C1 C2
----- ------------
1 a
1 b
1 c
2 a
2 c
3 f
4 c
5 a
SQL> select
2 c1,
3 substr(max(dbms_random.string('a', 1) || c2), 2) random_c2
4 from x
5 group by c1
6 /
C1 RANDOM_C2
----- --------------------
1 b
3 f
5 a
2 a
4 c
Or you can do it with a fancy way
1 select c1,
2 min(c2) keep (dense_rank first order by dbms_random.value) random_c2
3 from x
4 group by c1
5* order by 1
C1 RANDO
-------------------- -----
1 a
2 c
3 f
4 c
5 a
No comments:
Post a Comment