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 应该是您希望唯一的列。