2015-09-21 6 views
2

У меня есть таблица purchase_log, которая имеет следующие поля:Tableau - Условия на LOD Expression

UID, дату, категорию, количество

И я хотел бы знать, первую и вторую закупку дату для каждого пользователя каждой категории.

Например:

+-----+------+----------+--------+ 
| uid | date | category | amount | 
+-----+------+----------+--------+ 
| A | d1 | c1  | 100 | 
| A | d2 | c2  | 200 | 
| A | d3 | c1  | 120 | 
| A | d4 | c2  | 300 | 
+-----+------+----------+--------+ 

Для этих записей пользователей, я хотел бы сказать, что первая покупка из категории с1 производятся на дату d1, а вторая покупка из категории с1 производятся на дату d3.

я создал в настоящее время 3 вычисляемые поля:

  • первая покупка:

    { FIXED [uid] : MIN([date])} 
    
  • Повторите покупки:

    IIF([date]>[1st Purchase],[date],null) 
    
  • вторая покупка:

    { FIXED [uid] : MIN([Repeat Purchase])} 
    

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

Как решить эту проблему?

Спасибо.

ответ

3

Вы можете сделать это с помощью LODing как для uid, так и для категории.

  • первая покупка:

    { FIXED [uid],[category] : MIN([date])} 
    
  • Повторите покупки:

    { FIXED [uid],[category]: IIF([date]>[1st Purchase],[date],null)} 
    
  • вторая покупка:

    { FIXED [uid],[category] : MIN([Repeat Purchase])} 
    
+0

Привет Char ложь, спасибо за ваш ответ. Однако при повторной покупке я получаю: «Результат выражения LOD должен быть агрегатным». Как мне это исправить? – CanCeylan

+0

@CanCeylan try {FIXED [uid], [category], [date]: IIF ([date]> [1st Purchase], [date], null)} Добавление даты в LOD должно уменьшить гранулярность агрегации до уровень даты. –

+0

попробовал это, но все равно получал ту же ошибку и подчеркивал заявление IIF. – CanCeylan

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

  • Нет связанных вопросов^_^