加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

postgresql – Postgres FOR LOOP

发布时间:2020-12-13 16:43:01 所属栏目:百科 来源:网络整理
导读:我试图从表中获取15,000个ID的25个随机样本。而不是每次手动按下运行,我试图做一个循环。我完全理解的不是Postgres的最佳使用,但它是我拥有的工具。这是我到目前为止: for i in 1..25 LOOP insert into playtime.meta_random_sample select i,ID from tbl
我试图从表中获取15,000个ID的25个随机样本。而不是每次手动按下运行,我试图做一个循环。我完全理解的不是Postgres的最佳使用,但它是我拥有的工具。这是我到目前为止:
for i in 1..25 LOOP
   insert into playtime.meta_random_sample
   select i,ID
   from   tbl
   order  by random() limit 15000
end loop
Procedural elements like loops不是SQL语言的一部分,只能在程序语言函数或 DO语句的内部使用,其中这些附加元素由相应的过程语言定义。默认为 PL/pgSQL,但 there are others。

使用plpgsql的示例:

DO
$do$
BEGIN 
FOR i IN 1..25 LOOP
   INSERT INTO playtime.meta_random_sample (col_i,col_id) -- use col names
   SELECT i,id
   FROM   tbl
   ORDER  BY random()
   LIMIT  15000;
END LOOP;
END
$do$;

如果您需要优化性能,请考虑以下相关问题:

> Best way to select random rows PostgreSQL

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读