Advertisement
Guest User

Untitled

a guest
Jan 17th, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 2.17 KB | None | 0 0
  1.  WITH first_order_info as (
  2.     SELECT
  3.           T.*,  O.sales_user_id as first_sales_user_id, U.name as first_sales_person, GAT.date as ga_date, GAT.source AS first_source, GAT.medium AS first_medium, GAT.campaign AS first_campaign , CLR.lifetime AS customer_lifetime_revenue, COF.days_as_customer
  4.          
  5.       from( select O.customer_id , count(O.customer_id) as cont, MIN(O.created_at) as date_first_order, MAX(O.created_at) as date_last_order
  6.         from datalake."order" O
  7.        
  8.             where O.status_id <> 2 AND O.status_id <> 7 AND O.status_id IS NOT NULL
  9.             group by O.customer_id
  10.             order by O.customer_id
  11.           ) AS T
  12.        
  13.        
  14.              LEFT JOIN datalake."order" O ON T.customer_id = O.customer_id AND T.date_first_order = O.created_at
  15.             LEFT JOIN datalake."google_analytics_transactions" GAT ON O.id = GAT.transactionid
  16.             LEFT JOIN datalake."user" U ON O.sales_user_id = U.id
  17.             LEFT JOIN (SELECT
  18.                         O.id as cid,
  19.                         SUM(OI.total_price) as lifetime
  20.  
  21.                         FROM
  22.                         datalake.customer O
  23.  
  24.                       LEFT JOIN datalake."order" OI
  25.                                 ON O.id = OI.customer_id
  26.                                 GROUP BY 1)
  27.        
  28.                                 CLR on T.customer_id =  CLR.cid
  29.        
  30.            LEFT JOIN
  31.             (SELECT
  32.                     O.customer_id AS customer_id,
  33.                     COUNT(O.id) AS lifetime_orders,
  34.                     COUNT(OI.id) AS lifetime_order_items,
  35.                     MIN(O.created_at) AS first_order,
  36.                     MAX(O.created_at) AS latest_order,
  37.                     DATE_DIFF('DAY', MIN(O.created_at),now()) AS days_as_customer
  38.              
  39.               FROM
  40.                     datalake."order" O
  41.                     LEFT JOIN datalake.order_item OI
  42.                     ON O.id = OI.order_id
  43.                     GROUP BY customer_id) COF on T.customer_id = COF.customer_id
  44.  
  45.      
  46.      
  47.        
  48.   group by 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,11,12
  49.   )
  50.  
  51.  
  52.  
  53.  
  54.  
  55.   SELECT first_order_info.*
  56.  
  57.   from first_order_info
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement