我被困在查询中,我正在加入多个表以引入特定主键所需的属性。我发现我收到了重复的行,它们本质上是相同的,但一行在几列中有空 (?) 值。我只想返回包含填充数据的行。
到目前为止,我已经检查了所有的 vol 表,没有重复,并且在我的最终 vol 表之前我有相同的不同行数。我正在加入来自最终 vol 表中其他表的新数据,并将发布该查询,但只是好奇是否有人知道为什么“SELECT DISTINCT”会发生这种情况。
我尝试使用子句“WHERE PROD_LN IS NOT NULL”,但我有一些不是重复的,并且没有 PROD_LN 的值。我也在考虑尝试“CASE WHEN PROD_LN IS NULL THEN 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 |
我想你想要这样的东西:
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
应该是您希望唯一的列。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句