Шаблоны SQL запросов для вычисляемых полей в Yandex Datalens

Скачать .md

Мы собрали популярные запросы в одной инструкции.

Общее применение

Древовидная структура таблицы (применяется в чарте «Таблица»):

TREE(ARRAY([UTMSource],[UTMCampaign],[UTMTerm],[UTMContent]))

Деление:

FDIV_SAFE(SUM([Расходы, ₽]),SUM([Клики]),0)

Для работы с данными из рекламных площадок

Удаляет информацию в скобках. Например, поле «Кампания»:

  • Было: Рекламная кампания1(12345678);
  • Стало: Рекламная кампания1.
REGEXP_REPLACE([название поля], '\([^()]*\)', '')

Формирует новое поле из 3 других:

  • Из utm_source забирает все строки, в которых есть «yandex» и добавляет их в новое поле меняя название на «Яндекс Директ»;
  • Если первое условие не срабатывает, то далее из рекламного источника 1 забирает наименование и добавляет его в новое поле;
  • Если и это условие не срабатывает, то забирает наименование из поля рекламного источника 2.
IF(CONTAINS([utm_source], "yandex") = TRUE)
THEN "Яндекс Директ"
    ELSEIF([рекламный источник 1] != '')
    THEN [рекламный источник 1]
    ELSE [рекламный источник 2]
END

Переименовывает название источников или других строчных обозначений:

CASE [TrafficSource]
    WHEN 'organic' THEN 'Переходы из поисковых систем'
    WHEN 'internal' THEN 'Внутренние переходы'
    WHEN 'direct' THEN 'Прямые заходы'
    WHEN 'ad' THEN 'Переходы по рекламе'
    WHEN 'referral' THEN 'Переходы по ссылкам на сайтах'
    ELSE [TrafficSource]
END

Для работы с данными из CRM

Когда в таблице по CRM нужно вывести из строк подсчет какого либо этапа в отдельное поле (столбец):

SUM(
 IF([Этап сделки] = 'Название этапа' AND [Воронка] = 'Название воронки')
        THEN 1
    ELSE 0
    END)

Формирование нового поля «Выручка» из данных CRM таблицы. Если срабатывает условие определенного этапа сделки «Успешно реализовано» и воронки «Название воронки», то берется сумма сделки из поля «Сумма сделки»:

SUM(
    IF([Этап сделки] = 'Успешно реализовано' AND [Воронка] = 'Название воронки')
        THEN [Сумма сделки, ₽]
    ELSE 0
    END
)

Проверка заполняемости какого либо поля в сделке в CRM (например, «Source»):

if([Source]!='')
THEN 'Да'
ELSE 'Нет'
end

Добавляет условие выбора списка конверсий в моделях атрибуций:

IF [conversions]="Всего заявок"
    THEN SUM([vsego_zayavok_first])
ELSEIF [conversions]="Встреча проведена"
    THEN Sum([vstrecha_provedena_first])
ELSEIF [conversions]="Оплата получена"
    THEN SUM([oplata_poluchena_first])
ELSEIF [conversions]="Выручка, ₽"
    THEN SUM([profit_first])
ELSE SUM([vsego_zayavok_first])+Sum([vstrecha_provedena_first])+SUM([oplata_poluchena_first])+SUM([profit_first])
END

Покажем, из чего собирается ваша аналитика

За 30 минут разберём ваши источники и соберём схему: что подключается, что считается само, где цифры разойдутся.

  • Что у вас уже собирается и чего не хватает, чтобы увидеть выручку по каналам
  • Порядок подключения: что заработает за день, а что придётся настроить руками
  • Готовые отчёты на живых данных — расход и выручка рядом, когорты, RFM
Записаться на демо
Дашборд ROMI center со сквозной аналитикой