У меня есть набор данных, например:
ID TYPE POM POM_new
1234 sys 100 100
1234 pm 101 100
2345 pm 300 302
2345 sys 302 302
Я хочу создать новый столбец (POM_new), как указано выше. Новый столбец должен принимать значение поля «POM» на основе поля TYPE, т. е. «sys».
Я хочу сделать это в SQL(HANA) или Powerbi. Пробовал с кодом ниже, но безуспешно.
POM New = CALCULATE(MAX(tablename[POM]),FILTER(LPR,tablename[TYPE] = "SYS"),ALLEXCEPT(LPR,tablename[ID]))


Вы можете использовать стандартный SQL с аналитической функцией следующим образом:
SELECT ID, TYPE, POM,
MIN(CASE WHEN TYPE = 'sys' THEN POM END) OVER (PARTITION BY ID) AS POM_NEW
FROM YOUR_TABLE T;
Если вы ищете меру, используйте этот код ниже:
POM_new =
var current_id = MIN(your_table[ID])
RETURN
CALCULATE(
MAX(your_table[POM]),
FILTER(
ALL(your_table),
your_table[ID] = current_id
&& your_table[TYPE] = "sys"
)
)
В случае пользовательского столбца попробуйте следующий код:
POM_new_column =
var current_id = your_table[ID]
RETURN
CALCULATE(
MAX(your_table[POM]),
FILTER(
ALL(your_table),
your_table[ID] = current_id
&& your_table[TYPE] = "sys"
)
)
Это изображение ниже предназначено только для перекрестной проверки. Вы создаете новый столбец, как показано на изображении ниже? Если ответ «да», нет причин для получения проблемы с кодом столбца.
Пользовательский столбец выдает ошибку, например, CALCULATE не является функцией. Не могли бы вы проверить, если что-то не так, я делаю.
Привет @kumarb, где вы пытаетесь создать столбец. Это должно быть в части отчета, а не в редакторе запросов. Я протестировал здесь оба столбца Measure и Custom и отлично работает для вашего сценария.
Спасибо за ответ. Я использую прямой запрос, и я создал новый столбец, просто щелкнув правой кнопкой мыши имя таблицы, а затем «Новый столбец» на панели «Поля».
Попробуйте в редакторе отчетов >> щелкните правой кнопкой мыши по таблице >> создайте новую колонку.
Я сделал то же самое. но не в помощь. Мера работает хорошо, но не колонка. Я не уверен, в чем проблема. Calculate совместим с Measure , в этом причина?
С расчетом проблем нет. Оба работают здесь на меня. Я проверю детали позже.
@kumarb, не могли бы вы проверить мой обновленный ответ?
извините за задержку ответа. Ошибка связана с тем, что я использую режим прямого запроса (в соответствии с рекомендациями компании). В сообщении об ошибке говорится: функция CALCULATE не разрешена как часть выражений DAX вычисляемого столбца в моделях DirectQuery. Я полагаю, вы используете режим импорта, поэтому работаете
Да, это может быть причиной.
Отлично сработало. Спасибо за обучение.