Отчет Tableau, который объединяет одну и ту же строку в несколько групп

#tableau-api #aggregation

#tableau-api #агрегация

Вопрос:

У поставщика много продуктов в разных категориях продуктов. Новый клиент может покупать товары из одной или нескольких категорий. Строки данных представляют одну комбинацию заказа / товара, так что, если в заказе покупается три товара, в наборе данных будет три строки. При попытке ответить на вопрос о среднем общем объеме продаж по категориям заказов, я хочу включить каждый общий объем заказов в каждую применимую категорию. Например, если это то, что произошло:

  Customer #1:  Bought $20 in category A and $40 in category B.
 Customer #2:  Bought $40 in category B.
 Customer #3:  Bought $40 in category A and $30 in category C.
  

Данные будут отображать:

  Row 1:  Customer #1 bought $20 in category A.
 Row 2:  Customer #1 bought $40 in category B.
 Row 3:  Customer #2 bought $40 in category B.
 Row 4:  Customer #3 bought $40 in category A.
 Row 5:  Customer #3 bought $30 in category C.
  

Мой отчет должен показывать:

  Category A:  Two customers, $130 total (**Not $60**).  Average sale per order = $65.  
 Category B:  Two customers, $100 total.  Average sale per order = $50.
 Category C:  One customer,  $70 total.  Average sale per order = $70.
  

Каждый заказ должен учитываться полностью в каждой применимой категории. Это означает, что данная строка данных будет объединена в несколько групп категорий. Как я могу сделать это в Tableau?

Ответ №1:

Звучит как аргумент в пользу уровня детализации calc! Исправьте категорию…

 {FIXED [Category] : SUM([Sales])/COUNT([Orders]) }
  

Обязательно проверьте деление на ноль.

Обновить

В свете новой детали, указывающей, что набор данных относится к уровню элемента, а не к уровню заказа, вы можете подсчитывать отдельные порядковые номера вместо подсчета количества записей.

 {FIXED [Category] : SUM([Sales])/COUNTD([Order Number]) }
  

Комментарии:

1. Спасибо за предоставленную идею! Я уже использовал LOD раньше. Я должен был указать, что набор данных составляет одну строку на элемент для каждого заказа, поэтому для показанного примера есть пять записей. (Я только что отредактировал OP, чтобы показать это.) Учитывая это, не будет ли LOD просто агрегировать только записи данной категории в вычислении? Таким образом, я бы в итоге получил среднюю продажу на заказ = 60/2 = 30 вместо 130/2 = 65?

2. @LarrySeligman — хорошо, тогда сделайте отдельный подсчет номера заказа вместо подсчета количества записей…