Advertisement
Guest User

Untitled

a guest
Apr 18th, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 3.97 KB | None | 0 0
  1. SET @date_from = '2019-04-15',
  2.      @date_to = '2019-04-19';
  3.  
  4.  
  5.  
  6. SELECT  dt
  7.             , segment
  8.             , platform
  9.             , customers_status
  10.             , COUNT(count_customers) AS count_customers
  11.             , COUNT(count_customers_selected_categories) AS count_customers_selected_categories
  12.             , COUNT(count_orders) AS count_orders
  13.             , COUNT(count_orders_selected_categories) AS count_orders_selected_categories
  14.             , SUM(total_revenue) AS total_revenue
  15.             , SUM(total_revenue_selected_categories) AS total_revenue_selected_categories
  16.  
  17. FROM (
  18.  
  19.         SELECT  DATE(opn.op_date_added) AS dt
  20.                     , IFNULL(CONCAT(abt.ab_test_id, '_', abt.ab_test_part), '-') AS segment
  21.                     , CASE
  22.                             WHEN op.platform IN ('ios_app','android_app') THEN 'Mamsy_app'
  23.                             WHEN op.platform IN ('ios','android') THEN 'Mobile'
  24.                             ELSE 'Desktop'
  25.                       END AS platform
  26.                     , cs.customers_status_name AS customers_status
  27.                     , COUNT(DISTINCT o.customers_id) AS count_customers
  28.                     , NULL AS count_customers_selected_categories
  29.                     , COUNT(DISTINCT o.orders_id) AS count_orders
  30.                     , NULL AS count_orders_selected_categories
  31.                     , SUM(GREATEST(1 - opn.is_deleted,0) * opn.products_price) AS total_revenue
  32.                     , 0 AS total_revenue_selected_categories
  33.         FROM orders AS o
  34.         LEFT JOIN orders_platform AS op ON op.orders_id = o.orders_id
  35.         JOIN orders_products_new AS opn ON o.orders_id = opn.orders_id AND opn.op_date_added BETWEEN @date_from AND @date_to
  36.         /*LEFT*/ JOIN categories_extra AS ce ON opn.products_categories_id = ce.categories_id
  37.         LEFT JOIN customers AS c ON o.customers_id = c.customers_id
  38.         LEFT JOIN customers_status AS cs ON c.customers_status = cs.customers_status_id
  39.         LEFT JOIN customers_to_ab_testing AS ctabt ON c.customers_id = ctabt.customers_id
  40.         LEFT JOIN ab_testing AS abt ON abt.session_id = ctabt.ab_testing_session_id AND abt.ab_test_id = 4
  41.         GROUP BY    DATE(opn.op_date_added)
  42.                     , IFNULL(CONCAT(abt.ab_test_id, '_', abt.ab_test_part), '-')
  43.                     , op.platform
  44.                     , CASE
  45.                             WHEN op.platform IN ('ios_app','android_app') THEN 'Mamsy_app'
  46.                             WHEN op.platform IN ('ios','android') THEN 'Mobile'
  47.                             ELSE 'Desktop'
  48.                       END
  49.                     , cs.customers_status_name
  50.                
  51.             UNION ALL
  52.            
  53.         SELECT  DATE(opn.op_date_added) AS dt
  54.                     , IFNULL(CONCAT(abt.ab_test_id, '_', abt.ab_test_part), '-') AS segment
  55.                     , CASE
  56.                             WHEN op.platform IN ('ios_app','android_app') THEN 'Mamsy_app'
  57.                             WHEN op.platform IN ('ios','android') THEN 'Mobile'
  58.                             ELSE 'Desktop'
  59.                       END AS platform
  60.                     , cs.customers_status_name AS customers_status
  61.                     , NULL AS count_customers
  62.                     , COUNT(DISTINCT o.customers_id) AS count_customers_selected_categories
  63.                     , NULL AS count_orders
  64.                     , COUNT(DISTINCT o.orders_id) AS count_orders_selected_categories
  65.                     , 0 AS total_revenue
  66.                     , SUM(GREATEST(1 - opn.is_deleted,0) * opn.products_price) AS total_revenue_selected_categories
  67.         FROM orders AS o
  68.         LEFT JOIN orders_platform AS op ON op.orders_id = o.orders_id
  69.         JOIN orders_products_new AS opn ON o.orders_id = opn.orders_id AND opn.op_date_added BETWEEN @date_from AND @date_to
  70.         /*LEFT*/ JOIN categories_extra AS ce ON opn.products_categories_id = ce.categories_id AND ce.categories_hide_on_main = 0
  71.         LEFT JOIN customers AS c ON o.customers_id = c.customers_id
  72.         LEFT JOIN customers_status AS cs ON c.customers_status = cs.customers_status_id
  73.         LEFT JOIN customers_to_ab_testing AS ctabt ON c.customers_id = ctabt.customers_id
  74.         LEFT JOIN ab_testing AS abt ON abt.session_id = ctabt.ab_testing_session_id AND abt.ab_test_id = 4
  75.         GROUP BY    DATE(opn.op_date_added)
  76.                     , IFNULL(CONCAT(abt.ab_test_id, '_', abt.ab_test_part), '-')
  77.                     , op.platform
  78.                     , CASE
  79.                             WHEN op.platform IN ('ios_app','android_app') THEN 'Mamsy_app'
  80.                             WHEN op.platform IN ('ios','android') THEN 'Mobile'
  81.                             ELSE 'Desktop'
  82.                       END
  83.                     , cs.customers_status_name
  84.  
  85.         ) AS t
  86. GROUP BY dt
  87.             , segment
  88.             , platform
  89.             , customers_status
  90. ORDER BY dt
  91.             , segment
  92.             , platform
  93.             , customers_status
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement