在特定条件下创建群组

时间:2016-11-08 19:44:38

标签: teradata

我在下面的表格A(这只是样本)中显示了客户预订的渠道:

custNum  channelType  reservationNumber  
 1        web           1
 2        Iphone        2
 1        Android       3
 3        web           4

我试图将3组客户分开(我想获得他们的客户号码):
1.仅使用网络的客户
2.仅使用蜂窝信道的客户
3.同时使用两者的客户

根据上述样本,结果应为:
1.仅限网络(custNum = 3)
2.仅蜂窝(custNum = 2)
3. web + cellular(custNum = 1)

我仅针对网络使用者尝试了以下内容(但我知道这是错误的):

sel custNum from A where channelType in ('web');

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

你需要像这样做一些条件聚合:

select custNum,
   case 
      when max(case when channelType = 'web' then 1 else 2 end) = 1
        then 'web only'
      when max(case when channelType = 'web' then 2 else 1 end) = 1
        then 'celular only'
      else 'both'
   end
from tab
group by custNum