在列中插入随机数序列的 PostgreSQL 过程
PostgreSQL procedure to insert a sequence of random numbers in a column
我需要将 k
个由 |
连接的随机数(在 1:n
范围内)插入到 table 'X'
的列中,其中n
是 PostgreSQL 过程中 table 'Y'
中的行数。
求table'Y'
中的行数
select count(*) into n from Y
这将在 1:n
范围内生成 k
个随机数
SELECT num FROM GENERATE_SERIES (1, n) AS s(num) ORDER BY RANDOM() LIMIT k;
如何将 k
整数与 |
连接起来并将它们插入到 'X'
中?
可以使用insert ... select
和字符串聚合函数string_agg()
:
insert into y (x)
select string_agg(num::text, '|')
from (select num from generate_series (1, n) as s(num) order by random() limit k) s
请注意,您需要 n
等于或大于 k
才能使此技术有意义。
我需要将 k
个由 |
连接的随机数(在 1:n
范围内)插入到 table 'X'
的列中,其中n
是 PostgreSQL 过程中 table 'Y'
中的行数。
求table'Y'
select count(*) into n from Y
这将在 1:n
k
个随机数
SELECT num FROM GENERATE_SERIES (1, n) AS s(num) ORDER BY RANDOM() LIMIT k;
如何将 k
整数与 |
连接起来并将它们插入到 'X'
中?
可以使用insert ... select
和字符串聚合函数string_agg()
:
insert into y (x)
select string_agg(num::text, '|')
from (select num from generate_series (1, n) as s(num) order by random() limit k) s
请注意,您需要 n
等于或大于 k
才能使此技术有意义。