2017-01-23 2 views
0

Ich habe einen Kundendatensatz mit der Kundennummer und Kundenausgaben. Ich muss den Kundendatensatz in 3 Gruppen teilen, basierend auf dem Kunden senden (hohe Ausgaben Kunden, Medium Ausgaben Kunden, niedrige Ausgaben Kunden). Ich habe versucht RANK und Partitio zu benutzen, aber ich konnte die Anzahl der Gruppen nicht angeben (3). Gibt es eine andere Möglichkeit, dies mit Teradata zu tun? Wenn es 9 Kunden gibt, muss ich zuerst alle nach dem ausgegebenen Betrag sortieren und sie dann in 3 Gruppen aufteilen und zählen, wie viele Kunden sich unter jeder Gruppe befinden (3). Bestimmen Sie auch die Min- und Max-Werte des Betrags ausgegeben unter jeder GruppeTeradata Top-Middle-Bottom-Kunden

Say, Cust F, G, verbrachte ich zwischen $ 9 bis $ 12 und sind unter hohen Ausgaben Cust A, B, D verbrachte zwischen $ 4 bis $ 8 und sind in dem Medium verbringen Custs C, E, H verbrachte zwischen $ 1- $ 3 und sind unter niedrigen Ausgaben

Die Ausgabe sollte GROUP (1,2,3); # Custs (3,3,3); Min_Spend ($ 9, $ 4, $ 1); MAX_SPEND (12, 8, $ 3 $ $)

Antwort

1

Es gibt eine alte Funktion Quantils genannt, aber Sie besser ersetzen Sie es mit Standard-SQL-kompatible Syntax:

3 * (RANK() OVER (ORDER BY spend) - 1)/COUNT(*) OVER() AS Q 

Dies jeder Gruppe eine Zahl zwischen 0 bis 2 zuweist, Sie kann es leicht in eine abgeleitete Tabelle einfügen und eine Aggregation darüber hinzufügen.

+0

Dnoeth, das funktioniert perfekt. Dies teilt die Kundengruppe und zugeordnete Ränge. Ich habe dies auf eine volatile Tabelle geladen und die notwendigen Aggregationen durchgeführt. Vielen Dank. Nicht nur das, alle deine Antworten auf Teradata waren wirklich hilfreich. – Ramya

+0

Ich habe hier eine andere Situation. Grundsätzlich muss ich die Kunden unter jeder der 3 Produktgruppen einstufen, in hohe Ausgaben, niedrige und mittlere Ausgaben. Ich habe alles auf einmal gemacht, indem ich Gruppen- und Case-Statements verwendete. Aber wenn ich die Min- und Max-Verkäufe (Ranking nach Umsatz - sollte produktspezifisch sein) Werte für jeden Rang, die Min- und Max-Werte der mittleren Ebene waren die gleichen über alle Produktgruppen, aber ich möchte, dass sie alle unabhängig eingestuft werden. Irgendwelche Informationen darüber werden geschätzt – Ramya

+1

@ user1806980: Sie müssen wahrscheinlich "PARTITION BY product_group" zu beiden "OVER" – dnoeth