Advertisement
volday

Атриб-й доход по камп в FBC за посл 7д

Sep 23rd, 2019
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 8.73 KB | None | 0 0
  1. --Атрибутированный доход по кампаниям в модели атрибуции [New] Funnel Based with Completed Orders за последние 7 дней
  2. SELECT
  3.     SOURCE,
  4.     medium,
  5.     campaign,
  6.     sessions_count,
  7.     transactions_count,
  8.     cost,
  9.     _38bce04635ee4d74960b4ae47fcc4be0_attribution_attributed_revenue_online AS _38bce04635ee4d74960b4ae47fcc4be0_attribution_attributed_revenue_online
  10. ,
  11. _38bce04635ee4d74960b4ae47fcc4be0_attribution_attributed_revenue AS _38bce04635ee4d74960b4ae47fcc4be0_attribution_attributed_revenue,
  12.  
  13.  
  14. FROM
  15. (
  16.  
  17.     SELECT
  18.         SOURCE AS SOURCE,
  19.         medium AS medium,
  20.         campaign AS campaign,
  21.         sessions_count,
  22.         transactions_count,
  23.         cost,
  24.         _38bce04635ee4d74960b4ae47fcc4be0_attribution_attributed_revenue_online AS _38bce04635ee4d74960b4ae47fcc4be0_attribution_attributed_revenue_online
  25. ,
  26. _38bce04635ee4d74960b4ae47fcc4be0_attribution_attributed_revenue AS _38bce04635ee4d74960b4ae47fcc4be0_attribution_attributed_revenue,
  27.         sessions_count_summary,
  28.         cost_summary,
  29.         transactions_count_summary
  30.     FROM
  31.     (
  32.  
  33.  
  34.  
  35.     SELECT
  36.         *
  37.     FROM
  38.     (
  39.         SELECT
  40.             SOURCE,
  41.             medium,
  42.             campaign,
  43.  
  44.                 attributed_revenue_online AS _38bce04635ee4d74960b4ae47fcc4be0_attribution_attributed_revenue_online,
  45.                 attributed_revenue AS _38bce04635ee4d74960b4ae47fcc4be0_attribution_attributed_revenue,
  46.                     SUM(_38bce04635ee4d74960b4ae47fcc4be0_attribution_attributed_revenue_online) OVER() AS _38bce04635ee4d74960b4ae47fcc4be0_attribution_attributed_revenue_online_summary,
  47.                     SUM(_38bce04635ee4d74960b4ae47fcc4be0_attribution_attributed_revenue) OVER() AS _38bce04635ee4d74960b4ae47fcc4be0_attribution_attributed_revenue_summary,
  48.  
  49.             IFNULL(cost, 0) AS cost,
  50.             SUM(cost) OVER() AS cost_summary,
  51.             sessions_count,
  52.             SUM(sessions_count) OVER() AS sessions_count_summary,
  53.             transactions_count,
  54.             SUM(transactions_count) OVER() AS transactions_count_summary
  55.         FROM
  56.         (
  57.             SELECT
  58.                         COALESCE(revenues.SOURCE, sessions.SOURCE) AS SOURCE,
  59.                         COALESCE(revenues.medium, sessions.medium) AS medium,
  60.                         COALESCE(revenues.campaign, sessions.campaign) AS campaign,
  61.                 SUM(revenues.attributed_revenue) AS attributed_revenue,
  62.                 SUM(revenues.attributed_revenue_online) AS attributed_revenue_online,
  63.                 SUM(revenues.VALUE) AS VALUE,
  64.                 SUM(revenues.value_online) AS value_online,
  65.                 SUM(costs.cost) AS cost,
  66.                 COUNT(DISTINCT summary.session_id, 1000000) AS sessions_count,
  67.                 SUM(revenues.transactions_count) AS transactions_count
  68.             FROM
  69.             (
  70.         SELECT
  71.                 session_id
  72.                 ,
  73.                 MAX(SOURCE) AS SOURCE
  74. ,
  75.                 MAX(medium) AS medium
  76. ,
  77.                 MAX(campaign) AS campaign
  78.  
  79.         FROM
  80.         (
  81.     SELECT
  82.         sessionId AS session_id,
  83.         MIN(SEC_TO_TIMESTAMP(hits.TIME)) AS sessionTimestamp,
  84.             FIRST(trafficSource.SOURCE) AS SOURCE,
  85.             FIRST(trafficSource.medium) AS medium,
  86.             FIRST(trafficSource.campaign) AS campaign,
  87.  
  88.  
  89. FROM TABLE_DATE_RANGE([owox-140513:OWOXBI_Streaming.session_streaming_], DATE_ADD(DATE_ADD(UTC_USEC_TO_DAY(NOW()), -7,'DAY'), -30, 'DAY'), DATE_ADD(DATE_ADD(DATE_ADD(UTC_USEC_TO_DAY(DATE_ADD(UTC_USEC_TO_DAY(NOW()), -1,'DAY')), 1, 'day'), -1, 'second'), 1, 'DAY'))    GROUP EACH BY
  90.         session_id
  91.  
  92.  
  93.     HAVING sessionTimestamp BETWEEN DATE_ADD(DATE_ADD(UTC_USEC_TO_DAY(NOW()), -7,'DAY'), -30, 'DAY') AND DATE_ADD(DATE_ADD(UTC_USEC_TO_DAY(DATE_ADD(UTC_USEC_TO_DAY(NOW()), -1,'DAY')), 1, 'day'), -1, 'second')
  94.         ),
  95.         (
  96.     SELECT
  97.         CONCAT('offline', '.', STRING(IF(user_id IS NULL, 'null', user_id)), '_', STRING(TIMESTAMP_TO_SEC(TIMESTAMP(TIME)))) AS session_id,
  98.         MIN(TIMESTAMP(TIME)) AS sessionTimestamp,
  99.             FIRST('(not set)') AS SOURCE,
  100.             FIRST('offline') AS medium,
  101.             FIRST('(not set)') AS campaign,
  102.  
  103.  
  104. FROM [owox-140513:1c.completed_orders_view] WHERE TIMESTAMP(TIME) BETWEEN DATE_ADD(DATE_ADD(UTC_USEC_TO_DAY(NOW()), -7,'DAY'), -30, 'DAY') AND DATE_ADD(DATE_ADD(DATE_ADD(UTC_USEC_TO_DAY(DATE_ADD(UTC_USEC_TO_DAY(NOW()), -1,'DAY')), 1, 'day'), -1, 'second'), 1, 'DAY')    GROUP EACH BY
  105.         session_id
  106.  
  107.  
  108.     HAVING sessionTimestamp BETWEEN DATE_ADD(DATE_ADD(UTC_USEC_TO_DAY(NOW()), -7,'DAY'), -30, 'DAY') AND DATE_ADD(DATE_ADD(UTC_USEC_TO_DAY(DATE_ADD(UTC_USEC_TO_DAY(NOW()), -1,'DAY')), 1, 'day'), -1, 'second')
  109.         )
  110.     GROUP EACH BY
  111.         session_id
  112.             ) AS sessions
  113.             LEFT JOIN EACH
  114.             (
  115.         SELECT
  116.                 session_id
  117.                
  118.         FROM
  119.         (
  120.     SELECT
  121.         sessionId AS session_id,
  122.         MIN(SEC_TO_TIMESTAMP(hits.TIME)) AS sessionTimestamp,
  123.  
  124.  
  125. FROM TABLE_DATE_RANGE([owox-140513:OWOXBI_Streaming.session_streaming_], DATE_ADD(UTC_USEC_TO_DAY(NOW()), -7,'DAY'), DATE_ADD(DATE_ADD(DATE_ADD(UTC_USEC_TO_DAY(DATE_ADD(UTC_USEC_TO_DAY(NOW()), -1,'DAY')), 1, 'day'), -1, 'second'), 1, 'DAY'))    GROUP EACH BY
  126.         session_id
  127.  
  128.  
  129.     HAVING sessionTimestamp BETWEEN DATE_ADD(UTC_USEC_TO_DAY(NOW()), -7,'DAY') AND DATE_ADD(DATE_ADD(UTC_USEC_TO_DAY(DATE_ADD(UTC_USEC_TO_DAY(NOW()), -1,'DAY')), 1, 'day'), -1, 'second')
  130.         ),
  131.         (
  132.     SELECT
  133.         CONCAT('offline', '.', STRING(IF(user_id IS NULL, 'null', user_id)), '_', STRING(TIMESTAMP_TO_SEC(TIMESTAMP(TIME)))) AS session_id,
  134.         MIN(TIMESTAMP(TIME)) AS sessionTimestamp,
  135.  
  136.  
  137. FROM [owox-140513:1c.completed_orders_view] WHERE TIMESTAMP(TIME) BETWEEN DATE_ADD(UTC_USEC_TO_DAY(NOW()), -7,'DAY') AND DATE_ADD(DATE_ADD(DATE_ADD(UTC_USEC_TO_DAY(DATE_ADD(UTC_USEC_TO_DAY(NOW()), -1,'DAY')), 1, 'day'), -1, 'second'), 1, 'DAY')    GROUP EACH BY
  138.         session_id
  139.  
  140.  
  141.     HAVING sessionTimestamp BETWEEN DATE_ADD(UTC_USEC_TO_DAY(NOW()), -7,'DAY') AND DATE_ADD(DATE_ADD(UTC_USEC_TO_DAY(DATE_ADD(UTC_USEC_TO_DAY(NOW()), -1,'DAY')), 1, 'day'), -1, 'second')
  142.         )
  143.     GROUP EACH BY
  144.         session_id
  145.             ) AS summary
  146.             ON
  147.                 summary.session_id = sessions.session_id
  148.             LEFT JOIN EACH
  149.             (
  150.     SELECT
  151.         session_id,
  152.             FIRST(SOURCE) AS SOURCE,
  153.             FIRST(medium) AS medium,
  154.             FIRST(campaign) AS campaign,
  155.         SUM(VALUE) AS VALUE,
  156.         SUM(IF(transaction_source!=101, VALUE, 0)) AS value_online,
  157.         SUM(revenue * VALUE) AS attributed_revenue,
  158.         SUM(IF(transaction_source!=101, revenue, 0) * IF(transaction_source!=101, VALUE, 0)) AS attributed_revenue_online,
  159.         SUM(IF(active_step == 5, 1, 0)) AS transactions_count
  160.     FROM
  161.     (
  162.         SELECT
  163.             session_id,
  164.             VALUE,
  165.                     IFNULL(SOURCE, 'NULL') AS SOURCE,
  166.                     IFNULL(medium, 'NULL') AS medium,
  167.                     IFNULL(campaign, 'NULL') AS campaign,
  168.             revenue,
  169.             active_step,
  170.             MAX(IF(active_step == 5, data_source, NULL)) OVER(PARTITION BY transaction_id) AS transaction_source,
  171.     RANK() OVER(PARTITION BY transaction_id ORDER BY DATE DESC) AS rowf
  172.         FROM
  173.             [owox-140513:Funnel_Based_with_Completed_Orders.VALUES]
  174.         WHERE
  175.         DATE(_PARTITIONTIME) BETWEEN DATE(DATE_ADD(DATE_ADD(UTC_USEC_TO_DAY(NOW()), -7,'DAY'), -30,'DAY')) AND DATE(DATE_ADD(DATE_ADD(UTC_USEC_TO_DAY(DATE_ADD(UTC_USEC_TO_DAY(NOW()), -1,'DAY')), 1, 'day'), -1, 'second'))
  176.         AND DATE(MSEC_TO_TIMESTAMP(transaction_time)) BETWEEN DATE(DATE_ADD(UTC_USEC_TO_DAY(NOW()), -7,'DAY')) AND DATE(DATE_ADD(DATE_ADD(UTC_USEC_TO_DAY(DATE_ADD(UTC_USEC_TO_DAY(NOW()), -1,'DAY')), 1, 'day'), -1, 'second'))
  177.  
  178.     )
  179.     WHERE
  180.         rowf = 1
  181.     GROUP EACH BY
  182.         session_id
  183.             ) AS revenues
  184.             ON
  185.                 revenues.session_id = sessions.session_id
  186.             LEFT JOIN EACH
  187.             (
  188.        
  189.     SELECT
  190.         sessionId AS session_id,
  191.         SUM(trafficSource.attributedAdCost) AS cost
  192.  
  193. FROM TABLE_DATE_RANGE([owox-140513:OWOXBI_Streaming.session_streaming_], DATE_ADD(UTC_USEC_TO_DAY(NOW()), -7,'DAY'), DATE_ADD(DATE_ADD(UTC_USEC_TO_DAY(DATE_ADD(UTC_USEC_TO_DAY(NOW()), -1,'DAY')), 1, 'day'), -1, 'second'))    GROUP EACH BY
  194.         session_id
  195.        
  196.             ) AS costs
  197.             ON
  198.                 costs.session_id = sessions.session_id
  199.             GROUP EACH BY
  200.                 SOURCE,
  201.                 medium,
  202.                 campaign
  203.         )
  204.     )
  205.  
  206.     )
  207.  
  208. )
  209.  
  210.         ORDER BY sessions_count DESC
  211.         LIMIT 2500
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement