Давно ждал эту функциональность в DataLens и теперь она доступна во всех вариантах.
Набор формул из которых вы можете вызывать любые функции, которые нативно есть в базе данных.
Из того, что прям круто-круто и теперь можно проводить второй вебинар про ClickHouse - uniqMerge, а вообще, ниже примеры с комментами.
-- CH - читаем из словаря categories атрибут category_name по полю category_id, если не найден, проставляем константу other
DB_CALL_STRING('dictGetStringOrDefault','categories','category_name',[category_id],'other')
-- Работа с JSON
-- CH, взять из json поля json_field атрибут last_order_date из объекта category
DB_CALL_STRING('JSONExtractString',[json_field],'category','last_order_date')
-- PG - взять из json атрибут возвраст и возвращаемый тип будет int
DB_CALL_INT('JSON_VALUE',[json_field],'$.age')
-- CH посчитать hash с солью
DB_CALL_STRING('hex',DB_CALL_STRING('SHA1',[salt_param] + [some_id]))
-- CH оставить только уникальные значения в списке значений
DB_CALL_ARR('arrayCompact',[arr_field])
-- CH - использование bittest для проверки, проверяет, равна ли 1 четвертая цифра в int_field, удобно, когда в одном атрибуте зашито много значений
DB_CALL_BOOL('bitTest',[int_field],4)
-- CH, средневзвешенное
DB_CALL_AGG_FLOAT('avgWeighted',[amount],[weight_field])
-- CH, корреляция
DB_CALL_AGG_FLOAT('corr',[x],[y])
-- CH, работа с агрегациями uniqState
DB_CALL_AGG_INT('uniqMerge',[uniqStateField])
