Как мне получить аггре двух аггров в QlikView?
Если я хочу найти максимальное значение столбца из двух состояний, агрегированных по идентификатору члена, должно ли это работать?
=Aggr(
MaxString(
Aggr(NODISTINCT MinString({[State1]}DATE_STRING),MBR_ID)
+
Aggr(NODISTINCT MinString({[State2]}DATE_STRING),MBR_ID)
) , MBR_ID)
Так что, если бы у меня были эти данные:
MBR ID DATE_STRING
1 20120101
1 20120102
1 20120103
И у State1 было выбрано 20120101, а у State2 выбрано 20120103, мое выражение вернет 20120103 для члена 1.
Спасибо!
Изменить: в SQL это будет выглядеть так:
WITH MinInfo (DATE_STRING, MBR_ID)
AS (SELECT MIN(DATE_STRING), MBR_ID FROM Table WHERE TYPE IN ('State1', 'State2') GROUP BY MBR_ID, TYPE)
SELECT MAX(DATE_STRING) DATE_STRING, MBR_ID FROM MinInfo GROUP BY MBR_ID
1 ответ
Было бы легче достичь вашей цели, если вы конвертируете ее в поле фактической даты. Если вы используете диаграмму, где MBR_ID - это измерение, если вы хотите установить максимальную дату (самую позднюю дату), вы можете сделать следующее:
=nummax(Max({[State1]}DATE_STRING),Max({[State2]}DATE_STRING))
Чтобы преобразовать в дату, вы можете использовать эту функцию:
date#(DATE_STRING,'[text format of the date]')
(Формат даты для меня выглядит как ГГГГММДД, но если день, то месяц, вы бы использовали ГГГГМДММ)
Я бы посоветовал вам отформатировать его в сценарии, чтобы вам не приходилось беспокоиться об этом каждый раз, когда вам нужно использовать эту дату.