· 8 years ago · Feb 08, 2018, 01:10 PM
1drop table if exists test;
2
3create table test (
4user_id int,
5g int);
6
7insert into test values (1, 1);
8insert into test values (2, 1);
9insert into test values (3, 1);
10insert into test values (4, 1);
11insert into test values (5, 1);
12insert into test values (6, 1);
13
14with temp as (
15select t.user_id
16from (select tt.*, row_number() over (partition by tt.g order by randomint(100)) as seqnum
17 from test tt) t
18where t.seqnum <= 2
19)
20select user_id from temp union all
21select user_id from test where user_id not in (select user_id from temp)