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

时间:2015-12-11 16:27:56

标签: sql teradata

我有一个查询来提取下表,但我真正感兴趣的是抓取的是我的结果生成的突出显示的行。我试图在查询中写一个case语句,但我意识到我省略了一些我想保留的grp_mkt记录。逻辑基本上是我想要不在grp_mkt和段中的段的记录,如果你不在grp_mkt中。我可以联系同一个查询来查找这个但是这些表格很大(展示级数据)我宁愿不再尝试拉表。

enter image description here

1 个答案:

答案 0 :(得分:0)

您似乎想要提取一次细分市场,优先考虑任何市场,但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()就可以了。