Oracle11g 如何用所有行的匹配P_ID替换空值?

Oracle11g 如何用所有行的匹配P_ID替换空值?,oracle11g,tableau-api,informatica,Oracle11g,Tableau Api,Informatica,我拥有的数据集有一个问题,如果我选择一个患者的数据,与其p_ID相关,我会得到他服用了多少药物、进行了多少测试以及患有什么疾病的所有细节。但提供的一个部分的详细信息使另一个部分为空。因此,每当我试图计算与患者id和疾病id相关的药物服用量时,它会给我1。以下是样本数据: p_id ds_id sympton ds_from_date ds_to_date dr_id dosage dr_from_date dr_to_date tt_id result tt

我拥有的数据集有一个问题,如果我选择一个患者的数据,与其p_ID相关,我会得到他服用了多少药物、进行了多少测试以及患有什么疾病的所有细节。但提供的一个部分的详细信息使另一个部分为空。因此,每当我试图计算与患者id和疾病id相关的药物服用量时,它会给我1。以下是样本数据:

p_id    ds_id   sympton ds_from_date    ds_to_date  dr_id   dosage  dr_from_date    dr_to_date  tt_id   result  tt_date s_id
00047880    0002    Sympton of ALL  1999-1-23   2003-12-31  00096360    7   1999-1-23   2000-1-23   null    null    null    null
00047880    null    null    null    null    00024244    7   2000-1-23   2001-1-23   null    null    null    null
00047880    null    null    null    null    00054795    3   2001-1-23   2002-1-23   null    null    null    null
00047880    null    null    null    null    00063682    4   2002-1-23   2003-1-23   null    null    null    null
00047880    null    null    null    null    null    null    null    null    00796   Result of test  1999-1-23   null
00047880    null    null    null    null    null    null    null    null    00924   Result of test  2000-1-23   null
00047880    null    null    null    null    null    null    null    null    00781   Result of test  2001-1-23   null
00047880    null    null    null    null    null    null    null    null    00314   Result of test  2002-1-23   null
00047880    null    null    null    null    null    null    null    null    null    null    null    0000973218
00013243    0005    Sympton of Breast tumor 1998-5-20   2003-12-31  00033524    3   1998-5-20   1999-5-20   null    null    null    null
00013243    null    null    null    null    00061642    7   1999-5-20   2000-5-20   null    null    null    null
00013243    null    null    null    null    00079097    5   2000-5-20   2001-5-20   null    null    null    null
00013243    null    null    null    null    00057488    7   2001-5-20   2002-5-20   null    null    null    null
00013243    null    null    null    null    00076684    8   2002-5-20   2003-5-20   null    null    null    null
00013243    null    null    null    null    null    null    null    null    00111   Result of test  1998-5-20   null
00013243    null    null    null    null    null    null    null    null    00583   Result of test  1999-5-20   null
00013243    null    null    null    null    null    null    null    null    00781   Result of test  2000-5-20   null
00013243    null    null    null    null    null    null    null    null    00583   Result of test  2001-5-20   null
00013243    null    null    null    null    null    null    null    null    00164   Result of test  2002-5-20   null
00013243    null    null    null    null    null    null    null    null    null    null    null    0000940071
我希望所有空值都用准确的数据填充。比如:

00047880    0002    Sympton of ALL  1999-1-23   2003-12-31  00096360    7   1999-1-23   2000-1-23   00796   Result of test  1999-1-23   0000973218
00047880    0002    Sympton of ALL  1999-1-23   2003-12-31  00024244    7   2000-1-23   2001-1-23   00924   Result of test  2000-1-23   0000973218
00047880    0002    Sympton of ALL  1999-1-23   2003-12-31  00054795    3   2001-1-23   2002-1-23   00781   Result of test  2001-1-23   0000973218
00047880    0002    Sympton of ALL  1999-1-23   2003-12-31  00063682    4   2002-1-23   2003-1-23   00314   Result of test  2002-1-23   0000973218

即使行数没有减少,但我希望这些数据以某种方式被填满。这真的让我心烦意乱,我尝试了很多方法,但都没有效果。因此,如果我在表中对其进行可视化,它显示患有特定疾病的人只服用了一种药物,其余的发送到空值

在R中,你可以这样做
df
blank
->ctrl+V即粘贴,即可完成
注:Tableau并非用于数据争用,我相信它也可以通过其他方法完成

@KoushikRoy是的,长官,我认为这是一个复杂的要求。对于某些列,您有1个非空值,对于某些4个非空值,是否有任何模式或可能有任意数量的值,它们也可以重复?如果一列中有2个非空值,另一列中有4个非空值,那么应该如何显示数据。我认为它应该工作。但您仍然需要单独查找:)在
表中进行数据争用是一件困难的事情。然而,它可以很容易地在R中完成。我可以给你一个解决方案,如果你想的话?我可以把它标记为答案吗?你的数据来源是什么?
df <- read.table(text = "Col1   Col2    Col3    Col4    Col5    Col6    Col7    Col8    Col9    Col10
aa  bb  cc  dd  ee  ff  gg  hh  ii  jj
aa  null    null    null    null    null    null    null    null    null
aa  null    kk  ll  null    null    null    null    null    oo
null    null    null    null    null    null    null    null    null    mm", header = T)
#1
df[df == 'null'] <- NA

#2
tidyr::fill(df, everything(), .direction = "down")

  Col1 Col2 Col3 Col4 Col5 Col6 Col7 Col8 Col9 Col10
1   aa   bb   cc   dd   ee   ff   gg   hh   ii    jj
2   aa   bb   cc   dd   ee   ff   gg   hh   ii    jj
3   aa   bb   kk   ll   ee   ff   gg   hh   ii    oo
4   aa   bb   kk   ll   ee   ff   gg   hh   ii    mm