gpt4 book ai didi

sql - 有可能 "Select N times"吗?

转载 作者:行者123 更新时间:2023-11-29 13:21:26 31 4
gpt4 key购买 nike

不幸的是,我的数据库的数据模型必须改变,所以我正在寻找最轻松的方式来迁移我的数据。

此时情况如何:

create table cargo{
id serial primary key,
person_id int,
weight_id float,
reps_id int
);
//skipping constraints declaration

然而碰巧那个人每回合能够举起不同值(value)的 cargo

我要做的是修改 cargo 表并添加 turn 表,如下所示:

create table cargo{
id serial primary key,
person_id int,
);
//skipping constraints declaration

create table turn{
id serial primary key,
cargo_id int,
weight float
);

通常我可以像这样迁移现有数据:

insert into turn (cargo_id, weight) select id, weight from cargo;

但这样我就失去了所有 reps where reps > 1

是否可以创建插入到 select 中,其中 select 将被调用的次数与 reps 计数相同,而无需编写脚本?

最佳答案

尝试:

-- insert into turn (cargo_id, weight) 
SELECT c.id, c.weight_id
FROM cargo c,
LATERAL (
SELECT * FROM generate_series(1, greatest( c.reps_id, 1 ) )
) xx;

演示:http://sqlfiddle.com/#!15/4923e/1

关于sql - 有可能 "Select N times"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40852291/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com