需要 (Teradata) SQL 有关选择特定行的帮助

Need (Teradata) SQL Help On Selecting Specific Rows

我有一个提取以下内容的查询 table,但我真正感兴趣的是我的结果生成的突出显示的行。我试图在查询中编写一个 case 语句,但我意识到我忽略了一些我试图保留的 grp_mkt 记录。逻辑本质上是我想要记录不在 grp_mkt 中的段和段,如果你不在 grp_mkt 中。我可能可以连接同一个查询来找到它,但是 tables 是大量的(印象级别数据),我不想再次尝试拉 tables。

您似乎想要一次拉出细分市场,并优先考虑 grp_market 以外的任何市场。这是一种方法:

with t as (
      select t.*,
             row_number() over (partition by segment order by (case when market = grp_mkt then 1 else 2 end) desc) as seqnum
      from <your query/table here>  t
     )
select t.*
from t
where seqnum = 1;

如果您可以有多个段(非 grpmkt)并且您想要所有段,那么使用 rank() 而不是 row_number() 就可以了。