Как распределены продажи по категориям в зависимости от категории на посадочной странице?

В результате выполнения запроса получаем количество заказов по категориям в зависимости от категории товара на посадочной странице. В расчетах участвуют только те сессии, в которых пользователь приземлился на карточку товара и что-то купил. При этом если пользователь купил несколько товаров из разных категорий, то заказ будет присвоен каждой из категорий.

 
Динамические параметры
  • startDate - дата начала анализируемого периода
  • endDate - дата окончания анализируемого периода
  • dataSetName - название dataset с данными сессионного Streaming
  • tableName - название таблицы с данными сессионного Streaming
 
Пример визуализации результатов расчетов
 
 
SQL-запрос
 
SELECT
  landingProductCategory,
  purchasedProductCategory,
  SUM(purchases) AS totalPurchases FROM
  --t1 выбираем все сессии и категории товаров, где первым действием в сессии есть просмотр информации о товаре
  (
  SELECT
    sessionId,
    hits.product.productCategory AS landingProductCategory
  FROM
    FLATTEN ( (
      SELECT
        sessionId,
        hits.product.productCategory,
        hits.eCommerceActionType,
        hits.isEntrance
      FROM
        TABLE_DATE_RANGE({dataSetName default="OWOXBI_Streaming" type="input"}.{tableName default="session_streaming_" type="input"}, TIMESTAMP('{startDate default="2016-01-11" type="datetime"}'), TIMESTAMP('{endDate default="2016-01-11" type="datetime"}'))), hits.product)
  WHERE
    hits.isEntrance = 1
    AND hits.eCommerceActionType = 'detail'
    AND NOT hits.product.productCategory IN ('(not set)', '')) t1
JOIN EACH
  --t2 выбираем все сессии c заказами и запоминаем категории приобретенных товаров
  (
  SELECT
    sessionId,
    hits.product.productCategory AS purchasedProductCategory,
    SUM(hits.product.productQuantity) AS purchases
  FROM
    FLATTEN ( (
      SELECT
        sessionId,
        hits.product.productCategory,
        hits.eCommerceActionType,
        hits.product.productQuantity
      FROM
        TABLE_DATE_RANGE({dataSetName default="OWOXBI_Streaming" type="input"}.{tableName default="session_streaming_" type="input"}, TIMESTAMP('{startDate default="2016-01-11" type="datetime"}'), TIMESTAMP('{endDate default="2016-01-11" type="datetime"}'))), hits.product)
  WHERE
    hits.eCommerceActionType = 'purchase'
    AND hits.product.productQuantity > 0
    AND NOT hits.product.productCategory IN ('(not set)', '')
  GROUP BY
    sessionId,
    purchasedProductCategory) t2
  --объединяем t1 и t2 по sessionId, чтобы в одной таблице получить количество проданных товаров в разрезе категории посадочной страницы и категории приобретенного товара
ON
  t1.sessionId=t2.sessionId
GROUP BY
  landingProductCategory,
  purchasedProductCategory
Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 1 из 1
Еще есть вопросы? Отправить запрос

0 Комментарии

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