让我们说我的桌子看起来像这样。
Input: Table Person
ID | first_name | last_name | age | gender
1 | Robert | Müller | 34 | m
2 | Jannis | Fischer | 19 | m
3 | Monika | Schmid | 54 | f
目的是使用表本身“创建”数据。我想随机化我的表的centraint列并将它们重新组合在一起。
我想将first_name随机性地随机化,它们将始终相同,并且last_name和age可以按其列随机化。
Output: Table Person
ID | first_name | last_name | age | gender
1 | Robert | Schmid | 34 | m
2 | Monika | Müller | 54 | f
3 | Jannis | Fischer | 19 | m
我尝试加入两个select语句,但这并没有真正起作用。
我可能是这样的:
Select ID, first_name, gender From Person TABLESAMPLE SYSTEM(10);
UNION
Select ID, last_name, age From Person TABLESAMPLE SYSTEM(10);
您似乎想要随机拆分名称和年龄/性别。假设您不想重复,那么您可以使用row_number()
和随机数生成器。您尚未指定数据库,但其想法是:
select seqnum as id,
pn.first_name, pn.last_name, pd.age, pd.gender
from (select p.*, row_number() over (order by random()) as seqnum
from persons
) pn join
(select p.*, row_number() over (order by random()) as seqnum
from persons
) pd
on pn.seqnum = pd.seqnum;