Sql 插入到具有不同(控件重复)的一列中
您好,我有15000条记录的表,我需要在一列中插入其他不重复的表记录 这是我的sql:Sql 插入到具有不同(控件重复)的一列中,sql,postgresql,sql-insert,greatest-n-per-group,Sql,Postgresql,Sql Insert,Greatest N Per Group,您好,我有15000条记录的表,我需要在一列中插入其他不重复的表记录 这是我的sql: INSERT INTO ceny_min2(id, idt, kod_k, nrdok, data_z, odczytano, ost_update, cena_min) SELECT * FROM cenymin WHERE id IN ( SELECT MIN(id) FROM cenymin WHERE (SELECT distinct i
INSERT INTO ceny_min2(id, idt, kod_k, nrdok, data_z, odczytano, ost_update, cena_min)
SELECT *
FROM cenymin
WHERE id IN (
SELECT MIN(id)
FROM cenymin
WHERE (SELECT distinct idt FROM cenymin)
)
idt-是我只需要检查和翻转第一个记录的列
错误:
错误:WHERE的参数必须是boolean类型,而不是integer类型
**********Błd**********
错误:WHERE的参数必须是boolean类型,而不是integer类型
斯坦SQL:42804
我怀疑你想要:
insert into ceny_min2(id, idt, kod_k, nrdok, data_z, odczytano, ost_update, cena_min)
select id, idt, kod_k, nrdok, data_z, odczytano, ost_update, cena_min
from cenymin c
where c.id = (select min(id) from cenymin c1 where c1.idt = c.idt)
这将为您提供每个idt具有较小id的行
您还可以使用窗口函数来表达这一点:
insert into ceny_min2(id, idt, kod_k, nrdok, data_z, odczytano, ost_update, cena_min)
select id, idt, kod_k, nrdok, data_z, odczytano, ost_update, cena_min
from (
select c.*, row_number() over(partition by idt order by id) rn
from cenymin c
) c
where rn = 1
或带有不同的on:
这篇评论太长了 如果要防止表中出现重复项,则应使用唯一约束或索引。然后,如果要执行插入,请使用on conflict ignore:
我会建议使用特定的语法,但我无法理解您真正想要做什么。您可以添加示例数据来帮助解释您在这里要实现的目标吗?在哪里???在SelectIDT fromCenyminthanks中,我得到了我想要的结果:!欢迎@KamilRadosz。如果我的答案正确回答了你的问题,那么点击复选标记。。。谢谢
insert into ceny_min2(id, idt, kod_k, nrdok, data_z, odczytano, ost_update, cena_min)
select distinct on (idt) id, idt, kod_k, nrdok, data_z, odczytano, ost_update, cena_min
from cenymin c
order by idt, id
insert into ceny_min2 (id, idt, kod_k, nrdok, data_z, odczytano, ost_update, cena_min)
select *
from cenymin
on conflict on constraint <unique constraint> do nothing;