Подсчет уникальных записей по месяцам в таблице за год

У меня есть список кодов продуктов и даты их продажи. Я хочу считать только первые продажи этого продукта, а затем СУММ первые продажи по месяцам продаж. Таким образом, если продукт А был продан в феврале, марте и ноябре, он учитывается только в феврале.

Вот плохо скопированная таблица

Product Code    Sales Date      WHAT I WANT
-------------------------------------------
A1234          01/02/2014       COUNT THIS
B3333          03/02/2014       COUNT THIS
C5555          06/03/2014       COUNT THIS
A1234          09/03/2014       DON’T COUNT
F567           15/04/2014       COUNT THIS
P000           25/05/2014       COUNT THIS
B3333          01/01/2015       DON’T COUNT
A1234          06/01/2015       DON’T COUNT
P000           19/01/2015       DON’T COUNT
B3333          26/01/2015       DON’T COUNT
K5678          20/02/2015       COUNT THIS

Я хочу, чтобы моим конечным результатом был график с указанием месяцев, а затем подсчет первых продаж продукта.

Имеет ли это смысл? Я попытался использовать MIN, но он делает все AGG, что останавливает сравнение даты с датой.

0 ответов

ОБНОВЛЕНИЕ: комментатор указал, что в первом вопросе было два вопроса. Оба ответили бы с LOD.

Чтобы ответить на вопрос: "Я хочу, чтобы моим конечным результатом был график с указанием месяцев, а затем подсчет первых продаж продукта".

Используйте Фиксированную формулу:

count(if 
  DATETRUNC('month',[Sales Date])={fixed [Product Code]:min(datetrunc('month',[Sales Date]))}
then
  [Product Code]
END)

Эта формула сравнивает месяц даты на каждом уровне строки с минимальной датой для всех продаж того же кода продукта. Затем он подсчитывает записи, где это условие выполняется.

Чтобы ответить на вопрос: я хочу подсчитать только первую продажу этого продукта, а затем СУММ первые продажи по месяцам продаж.

Поскольку ОП не указывал продажи в исходной таблице, я не ответил на итоговую часть вопроса. Тем не менее, это также будет LOD, и это будет выглядеть так:

sum(if 
  DATETRUNC('month',[Sales Date])={fixed [Product Code]:min(datetrunc('month',[Sales Date]))}
then 
  [Sales]
END)

Это очень похоже на вышесказанное, за исключением того, что суммирует продажи вместо подсчета продуктов.

А вот картинка (я добавил продажи и одну дополнительную строку продаж для продукта A1234, чтобы вы могли видеть, что он суммируется как часть продаж за первые месяцы продукта.)

Чтобы глубоко погрузиться в LOD (уровень детализации) часть этого, {fixed [Product Code]:min(datetrunc('month',[Sales Date]))} Таблица позволяет выполнять расчеты на основе указанной области. В этом случае формула читается как "вернуть минимальный месяц с даты продажи для каждого кода продукта". Вы можете прочитать намного больше о LOD на сайте Tableau или во многих результатах поиска Google.

Другие вопросы по тегам