2016-08-11 5 views
0

Wie kann ich eine Abfrage schreiben, die bei den Kunden, das ist aussieht hat mehrere Produkte und fügt einen Kunden „Typen: basierend auf dem meistverkauften Produkt . Zum Beispiel:Wählen Kundentyp basierend auf bestverkauften Produkt

Customer Product Revenue 
123   A  2000  
123   B  500  
123   C  1000  

Ich möchte eine Abfrage schreiben, die beispielsweise den Kunden '123' betrachtet und das meistverkaufte Produkt berechnet und ein Etikett in den Kundentyp einfügt. In diesem Fall sollte 'Kundentyp' "A" sein, weil "A" das meistverkaufte Produkt ist

Antwort

1

Hmmm Ich gehe davon aus, dass "meistverkaufend" sich auf die Umsatzspalte bezieht. Wenn dies der Fall ist, handelt es sich um eine Aggregation, einen Join und eine case:

select t.*, 
     (case when t.revenue = tt.revenue then 'A' end) as type 
from t join 
    (select customer, max(revenue) as maxr 
     from t 
     group by customer 
    ) tt 
    on t.customer = tt.customer; 
+0

das ist, was ich gesucht habe. Danke für deine schnelle Hilfe. – user6506094

Verwandte Themen