Подсчет уникальных записей по месяцам в таблице за год
У меня есть список кодов продуктов и даты их продажи. Я хочу считать только первые продажи этого продукта, а затем СУММ первые продажи по месяцам продаж. Таким образом, если продукт А был продан в феврале, марте и ноябре, он учитывается только в феврале.
Вот плохо скопированная таблица
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.