gpt4 book ai didi

sql - 具有多个左外连接的 Postgres Create Table As Select 查询产生重复数据

转载 作者:行者123 更新时间:2023-11-29 13:33:36 24 4
gpt4 key购买 nike

我有几个表有一个 UDID(唯一 ID)和一些其他信息。我正在尝试合并这些表,以便每个 UDID 在最终表中出现一次。我所有输入表中的数据看起来都是正确的,并且具有很好的理论意义。但是,当我查看输出表时,我一遍又一遍地看到相同的数据。

这里是查询:

create table roi_wide_ss_gen_all as
select a.udid, a.src, a.tm8,a.tm7,a.tm6,a.tm5,a.tm4,a.tm3,a.tm2,a.tm1, a.t1, a.t2, a.t3, a.t4, a.t5,a.t6,a.t7,a.t8
, pf_m, female, asam, pf_50, pf_150, pf_250, pf_251
from roi_wide_ss_gen a
left outer join roi_wide_ss_gen_m b on (a.udid = b.udid)
left outer join roi_wide_ss_gen_f c on (a.udid = c.udid)
left outer join roi_wide_ss_gen_k d on (a.udid = d.udid)
left outer join roi_wide_ss_gen_50 e on (a.udid = e.udid)
left outer join roi_wide_ss_gen_150 f on (a.udid = f.udid)
left outer join roi_wide_ss_gen_250 g on (a.udid = g.udid)
left outer join roi_wide_ss_gen_251 h on (a.udid = h.udid)
left outer join roi_wide_ss_gen_as i on (a.udid = i.udid)
;

这是输出表的前几行:

             udid src tm8 tm7 tm6 tm5 tm4 tm3 tm2 tm1 t1 t2 t3 t4 t5 t6 t7 t8 pf_m female asam pf_50 pf_150 pf_250 pf_251
2b4821ecf223b1f6 1 0 0 0 0 4 6 2 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0
2b4821ecf223b1f6 1 0 0 0 0 4 6 2 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0
2b4821ecf223b1f6 1 0 0 0 0 4 6 2 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0
2b4821ecf223b1f6 1 0 0 0 0 4 6 2 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0
2b4821ecf223b1f6 1 0 0 0 0 4 6 2 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0

如果我让它持续 100 行,那么数据最终会发生一些变化,就像这样

2b4821ecf223b1f6   1   0   0   0   0   4   6   2   0  0  0  0  0  0  0  0  0    0      1       1     0      0      0      0         
2b4821ecf223b1f6 1 0 0 0 0 4 6 2 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0
a6ce599b8344bb4c 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0
3f1448b00f8d8031 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0
fca0bd81bdc66de5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0
fca0bd81bdc66de5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0

但它仍然不是每个 UDID 的 1 行,就像大多数 UDID 应该的那样。我可以发誓我在过去让这个工作正常,但是......

最佳答案

在你的一个表中应该有一个重复的 udid - 如果你对 udid 没有唯一约束,检查结果

select udid from ... group by udid having count(*) > 1

在你的 table 上找出来

关于sql - 具有多个左外连接的 Postgres Create Table As Select 查询产生重复数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18321756/

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