我一直在查询我正在加入多个表来引入特定主键所需的属性。我发现的是我收到的重复行基本相同,但是一行在几列中有空(?)值。我只想返回带有填充数据的行。
到目前为止,我已经检查了所有的vol表,并且没有重复项,并且在我的最终vol表之前,我有相同的不同行数。我正在加入最终vol表中其他表的新数据,并将发布该查询,但只是好奇是否有人知道为什么会发生“SELECT DISTINCT”。
我尝试使用子句“WHERE PROD_LN IS NOT NULL”,但我有一些不重复,并且没有PROD_LN的值。我也在考虑尝试“当PROD_LN为NULL而PROD_LN = PROD_LINE NOT NULL”时的情况,但不确定这是否有效。任何帮助表示赞赏!
ACCT_NAME | GRP_ID | GRP_B | ASGND_CD | PROD_LN | PROD_TYP | PLCY_TYP | FINCL | MKT_SGMT |
ENTERPRISE A | 00012345 | N12345 | 1 | ? | ? | 8 | ? | ? |
ENTERPRISE A | 00012345 | N12345 | 1 | H | SPPO | 8 | ASO | AFG |
答案 0 :(得分:1)
我想你想要这样的东西:
select t.*
from t
qualify row_number() over (partition by ACCT_NAME, GRP_ID, GRP_B, ASGND_CD
order by prod_ln nulls last
) = 1;
我猜这是重复的,你的意思是前四列。在任何情况下,partition by
都应该是您想要唯一的列。