2017-01-23 3 views
0

У меня есть набор данных для клиентов с идентификатором клиента и с клиентами. Мне нужно разбить набор данных клиента на 3 группы, основанных на отправке клиента (клиенты с высоким расходом, средние расходы, низкие затраты на перенос). Я пытался использовать RANK и Partitio, но я не смог дать количество групп (3). Есть ли другой способ, которым я могу это сделать с Teradata. Если есть 9 клиентов, мне нужно сначала отсортировать их по затраченной сумме, а затем разделить на 3 группы и подсчитать, сколько клиентов там под каждой группой (3). Также определите минимальные и максимальные значения суммы, потраченной в каждой группеTeradata Топ-средний нижний клиент

Скажите, Cust F, G, я потратил от 9 до 12 долларов США и находился в состоянии высоких расходов Cust A, B, D потратил от 4 до 8 долларов США и находятся в среднем расходе Порывы C, E, H, потраченные между $ 1- $ 3 и находятся под низкими затратами

Выход должен быть GROUP (1,2,3); # Порывы (3,3,3); Min_Spend ($ 9, $ 4, $ 1); MAX_SPEND ($ 12, $ 8, $ 3)

ответ

1

Там старая функция с именем квантиль, но лучше заменить его совместимым синтаксисом Стандарт SQL:

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

Назначает число в диапазоне от 0 до 2 в каждой группе, вы может легко обернуть его в производную таблицу и добавить к ней агрегацию.

+0

Dnoeth, Это работает отлично. Это разделяет группу клиентов и назначенные ранги. Я загрузил это на неустойчивую таблицу и выполнил необходимые скопления. Большое спасибо. Не только это, все ваши ответы на teradata были действительно полезны. – Ramya

+0

У меня есть другая ситуация здесь. В принципе, мне нужно ранжировать клиентов под каждой из трех групп продуктов, в случае высоких затрат на перенос, низких и средних расходов. Я сделал все это сразу, используя групповые и деловые заявления. Но когда я вытащил минимальные и максимальные значения продаж (рейтинг по продажам - должен быть конкретным продуктом) для каждого ранга, значения min и max среднего уровня были одинаковыми во всех группах продуктов, но я хочу, чтобы все они были ранжированы независимо. Любую информацию по этому поводу оценивают – Ramya

+1

@ user1806980: Вам, вероятно, нужно добавить 'PARTITION BY product_group' как для« OVER » – dnoeth

Смежные вопросы