Tableau создать уникальную максимальную дату - PullRequest
1 голос
/ 19 апреля 2019

Мне нужно получить уникальное значение Макс ([Дата]).

У меня есть этот расчет для максимальной даты:

{ FIXED [City] : Max([Date]) }

Количество:

IF[Max Date (Last Street)]= [Date] 
THEN [Count Record]
Else 0
END

Например:

City    Date              Street        I get (Count)        I Want (Count)
Miami   01/01/2019        1st            0                    0
Miami   01/02/2019        2nd            0                    0
Miami   01/03/2019        3rd            1                    0
Miami   01/03/2019        4th            1                    1

1 Ответ

1 голос
/ 19 апреля 2019

Это была бы хорошая ситуация, чтобы смешать вычисления LOD и вычисления таблицы. Ваша первоначальная функция LOD выглядит хорошо, так как она найдет полную максимальную дату для каждого города. Оттуда вы можете применить концепцию вычисляемого поля, которое вы уже начали, и добавить вычисление таблицы (Last ()):

IF ATTR([Max Date (Last Street)]) = ATTR([Date]) 
    AND LAST() == 0
THEN [Count Record]
Else 0
END

Обратите внимание, что другие части вычисляемого поля обернуты в ATTR (), чтобы превратить их в агрегации.

Как только вы добавите в данные дополнительные города, вам нужно будет отредактировать вычисление таблицы на Right clicking on table calculation on view > Edit Table Calculation...

enter image description here

Обратите внимание на то, что выбрано Определенные размеры и Перезапуск каждые заменен на «Город»

Конечный продукт должен выглядеть так:

enter image description here

Альтернативный метод:

Если вы хотите использовать только LOD, а названия улиц всегда содержат уникальных возрастающих номеров :

If Date = {Fixed [City]: MAX(Date)} 
    AND REGEXP_EXTRACT([Street],'(\d+)') = {FIXED [City], [Date]: 
        MAX(REGEXP_EXTRACT([Street],'(\d+)'))}
Then 1
Else 0
END

Вышеприведенное будет по существу извлекать номер с улицы, а затем добавит его как условие в дополнение к уже существующему MAX (дате). Тогда вы получите только 1, когда оба условия были выполнены.

Конечный результат будет таким же, как указано выше.

...