Teradata SQL - select 不同的返回重复行,其中一行具有空值
Teradata SQL - select distinct returning duplicate rows where one row has null values
我被困在查询中,我正在加入多个 table 以引入特定主键所需的属性。我发现我收到了重复的行,这些行本质上是相同的,但是一行在几列中有空值(?)。我只想 return 填充数据的行。
到目前为止,我已经检查了我所有的卷 table,没有重复,并且在我的最终卷 table 之前,我有相同的不同行数。我将在最后一卷 table 中加入来自其他 table 的新数据,并将 post 该查询,但只是好奇是否有人知道为什么 "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
应该是您希望唯一的列。
我被困在查询中,我正在加入多个 table 以引入特定主键所需的属性。我发现我收到了重复的行,这些行本质上是相同的,但是一行在几列中有空值(?)。我只想 return 填充数据的行。
到目前为止,我已经检查了我所有的卷 table,没有重复,并且在我的最终卷 table 之前,我有相同的不同行数。我将在最后一卷 table 中加入来自其他 table 的新数据,并将 post 该查询,但只是好奇是否有人知道为什么 "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
应该是您希望唯一的列。