2016-11-08 5 views
0

Ich habe die folgende Tabelle A (dies ist nur Probe), die präsentiert den Kanal der Kunde eine Reservierung vorzunehmen:Erstellen von Gruppen unter bestimmten Bedingungen

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

und ich versuche, zwischen drei Gruppen von Kunden zu trennen (ich möchte ihre cust Zahlen erhalten):
1. Kunden, die nur im Internet verwendet
2. Kunden, die nur die zellulären Kanäle
3. Kunden verwendet, die sowohl

verwendet

unter der Probe oben, Die Ergebnisse sollten b e:
1. Web-only (custNum = 3)
2. Zell nur (custNum = 2)
3. web + zelluläre (custNum = 1)

ich nur die folgenden für Web usesr versucht hatte, (aber ich weiß, dass es falsch ist):

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

jede Hilfe wird geschätzt.

Antwort

1

Sie müssen einige bedingte Aggregation wie dies zu tun:

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 
+0

Vielen Dank !! – staove7

Verwandte Themen