Advertisement
Guest User

Untitled

a guest
May 24th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 8.53 KB | None | 0 0
  1. the query IS : WITH h1 AS
  2. (
  3. SELECT
  4.     datetime,
  5.     account,
  6.     campaign,
  7.     adgroup,
  8.     tag_name,
  9.     domain_id,
  10.     query,
  11.     ip_isp,
  12.     POSITION,
  13.     hq1_search_id,
  14.     type_tq,
  15.     yahoo_revenue AS revenue,
  16.     yahoo_discard_percent AS outclicks,
  17.     yahoo_outclicks,
  18.     session_outclicks
  19. FROM adknown_reporting.hourly_advertiser_rpcs
  20. WHERE pdate >= '2018-03-01'
  21. AND hq1_search_id > 0
  22. AND distinct_queries = 1
  23. AND NOT REGEXP_LIKE(account, 'trafficvance|awd1-|test1')
  24. AND NOT REGEXP_LIKE(campaign, 'R_T_Big')
  25. )
  26. , p1 AS (
  27. SELECT
  28.     datetime,
  29.     account,
  30.     campaign,
  31.     adgroup,
  32.     tag_name,
  33.     domain_id,
  34.     query,
  35.     ip_isp,
  36.     POSITION,
  37.     hq_poo_search_id,
  38.     type_tq,
  39.     yahoo_revenue AS revenue,
  40.     yahoo_discard_percent AS outclicks,
  41.     yahoo_outclicks,
  42.     session_outclicks
  43. FROM adknown_reporting.hourly_advertiser_rpcs
  44. WHERE pdate >= '2018-03-01'
  45. AND hq_poo_search_id > 0
  46. AND distinct_queries = 1
  47. AND NOT REGEXP_LIKE(account, 'trafficvance|awd1-|test1')
  48. )
  49. , h2 AS (
  50. SELECT
  51.     a.datetime,
  52.     a.account,
  53.     a.campaign,
  54.     a.adgroup,
  55.     a.tag_name,
  56.     a.domain_id,
  57.     a.query,
  58.     a.ip_isp,
  59.     c.ip_address,
  60.     c.country_code,
  61.     c.state,
  62.     c.user_agent,
  63.     c.id,
  64.     c.inclicks,
  65.     a.outclicks,
  66.     a.revenue,
  67.     a.POSITION,
  68.     d.placement AS source_placement,
  69.     d.creative AS creative,
  70.     d.device_type AS source_device_type,
  71.     d.device_model AS source_device_model,
  72.     d.POSITION AS source_position,
  73.     d.network AS source_network,
  74.     d.match_type AS source_match_type,
  75.     d.entry_url
  76. FROM h1 a
  77. LEFT JOIN adknown_platform_archive.v_s_hq1_searches_luke b ON a.hq1_search_id = b.id
  78. LEFT JOIN adknown_platform_archive.v_s_hq1_luke c ON b.hq1_id = c.id
  79. LEFT JOIN adknown_platform_archive.v_s_hq1_adwords_luke d ON c.id = d.hq1_id
  80. WHERE b.pdate >= '2018-03-01'
  81. AND c.pdate >= '2018-03-01'
  82. AND d.pdate >= '2018-03-01'
  83. AND a.revenue > 0.00
  84. )
  85. , p2 AS (
  86. SELECT
  87.     a.datetime,
  88.     a.account,
  89.     a.campaign,
  90.     a.adgroup,
  91.     a.tag_name,
  92.     a.domain_id,
  93.     a.query,
  94.     a.ip_isp,
  95.     c.ip_address,
  96.     c.country_code,
  97.     c.state,
  98.     c.user_agent,
  99.     c.id,
  100.     c.inclicks,
  101.     a.outclicks,
  102.     a.revenue,
  103.     a.POSITION,
  104.     c.source_placement,
  105.     c.ad AS creative,
  106.     c.device_type AS source_device_type,
  107.     NULL AS source_device_model,
  108.     NULL AS source_position,
  109.     c.source_network,
  110.     c.source_match_type,
  111.     c.entry_url
  112. FROM p1 a
  113. LEFT JOIN adknown_platform.s_hq_poo_searches b ON a.hq_poo_search_id = b.id
  114. LEFT JOIN adknown_platform.s_hq_poo c ON b.tracker = c.tracker
  115. WHERE b.pdate >= '2018-03-01'
  116. AND c.pdate >= '2018-03-01'
  117. AND a.revenue > 0.00
  118. )
  119. , h3 AS (
  120. SELECT
  121.     a.datetime,
  122.     a.account,
  123.     a.campaign,
  124.     a.adgroup,
  125.     a.tag_name,
  126.     a.domain_id,
  127.     a.query,
  128.     a.ip_address,
  129.     a.country_code,
  130.     a.ip_isp,
  131.     a.state,
  132.     a.user_agent,
  133.     a.id,
  134.     a.inclicks,
  135.     a.outclicks,
  136.     0 AS revenue,
  137.     0 AS POSITION,
  138.     b.placement AS source_placement,
  139.     b.creative AS creative,
  140.     b.device_type AS source_device_type,
  141.     b.device_model AS source_device_model,
  142.     b.POSITION AS source_position,
  143.     b.network AS source_network,
  144.     b.match_type AS source_match_type,
  145.     b.entry_url
  146.  FROM adknown_platform_archive.v_s_hq1_luke a
  147.   LEFT JOIN adknown_platform_archive.v_s_hq1_adwords_luke b ON a.id = b.hq1_id
  148. WHERE CAST(datetime AS VARCHAR) BETWEEN '2018-03-01' AND CAST((SELECT DATE_ADD('hour', 1, MAX(datetime)) FROM h1 GROUP BY datetime ORDER BY datetime DESC LIMIT 1) AS VARCHAR)
  149.   AND b.pdate >= '2018-03-01'
  150. AND NOT REGEXP_LIKE(a.account, 'trafficvance|awd1-|test1')
  151. AND NOT REGEXP_LIKE(a.campaign, 'R_T_Big')
  152. AND a.id NOT IN (SELECT id FROM h2 WHERE id IS NOT NULL GROUP BY id)
  153. )
  154. , p3 AS (
  155. SELECT
  156.     a.datetime,
  157.     a.account,
  158.     a.campaign,
  159.     a.adgroup,
  160.     a.tag_name,
  161.     a.domain_id,
  162.     a.query,
  163.     a.ip_address,
  164.     a.country_code,
  165.     a.ip_isp,
  166.     a.state,
  167.     a.user_agent,
  168.     a.id,
  169.     a.inclicks,
  170.     a.outclicks,
  171.     0 AS revenue,
  172.     0 AS POSITION,
  173.     source_placement,
  174.     ad AS creative,
  175.     device_type AS source_device_type,
  176.     NULL AS source_device_model,
  177.     NULL AS source_position,
  178.     source_network,
  179.     source_match_type,
  180.     entry_url
  181.  FROM adknown_platform.s_hq_poo a
  182. WHERE CAST(datetime AS VARCHAR) BETWEEN '2018-03-01' AND  CAST((SELECT DATE_ADD('hour', 1, MAX(datetime)) FROM p1 GROUP BY datetime ORDER BY datetime DESC LIMIT 1) AS VARCHAR)
  183. AND NOT REGEXP_LIKE(a.account, 'trafficvance|awd1-|test1')
  184. AND a.id NOT IN (SELECT id FROM p2 WHERE id IS NOT NULL GROUP BY id)
  185. )
  186. , u1 AS (
  187. SELECT * FROM h2
  188.   UNION
  189. SELECT * FROM h3
  190.   UNION
  191. SELECT * FROM p2
  192.   UNION
  193. SELECT * FROM p3
  194. )
  195. , u2 AS (
  196. SELECT
  197.  a.*,
  198.  CASE
  199.     WHEN user_agent LIKE '%(Linux; Android%'
  200.         THEN REPLACE(SPLIT_PART(user_agent,';',2),'Mozilla/5.0 (Linux; ','')
  201.     WHEN user_agent LIKE '%Mozilla/5.0 (Android%'
  202.         THEN REPLACE(SPLIT_PART(user_agent,';',1),'Mozilla/5.0( ','')
  203.     WHEN user_agent LIKE '%(Linux; U; Android%'
  204.         THEN REPLACE(LTRIM(SPLIT_PART(user_agent,';',3)),'Mozilla/5.0 (Linux; U; ','')
  205.     WHEN user_agent LIKE '%Windows NT 10.0%'
  206.         THEN 'Windows 10'
  207.     WHEN user_agent LIKE '%Windows NT 6.3%'
  208.         THEN 'Windows 8.1'
  209.     WHEN user_agent LIKE '%Windows NT 6.2%'
  210.         THEN 'Windows 8'
  211.     WHEN user_agent LIKE '%Windows NT 6.1%'
  212.         THEN 'Windows 7'
  213.     WHEN user_agent LIKE '%Windows NT 6.0%'
  214.         THEN 'Windows Vista'
  215.     WHEN user_agent LIKE '%Windows NT 5.2%'
  216.         THEN 'Windows Server 2003; Windows XP x64 Edition'
  217.     WHEN user_agent LIKE '%Windows NT 5.1%'
  218.         THEN 'Windows XP'
  219.     WHEN user_agent LIKE '%Windows NT 5.0%'
  220.         THEN 'Windows 2000'
  221.     WHEN user_agent LIKE '%Windows NT 4.0%'
  222.         THEN 'Microsoft Windows NT 4.0'
  223.     WHEN user_agent LIKE '%Windows 9'
  224.         THEN 'Windows 95/98/Millenium'
  225.     WHEN user_agent LIKE '%Windows CE'
  226.         THEN 'Windows CE'
  227.     WHEN user_agent LIKE '%Mozilla/5.0 (Macintosh%'
  228.         AND user_agent NOT LIKE '% rv:%'
  229.         THEN REPLACE(SPLIT_PART(user_agent,')', 1),'Mozilla/5.0 (Macintosh; Intel ','')
  230.     WHEN user_agent LIKE '%Mozilla/5.0 (Macintosh%'
  231.         AND user_agent LIKE '% rv:%'
  232.         THEN REPLACE(SPLIT_PART(user_agent,';', 1),'Mozilla/5.0 (Macintosh; Intel ','')
  233.     WHEN user_agent LIKE '%Blackberry%'
  234.         THEN 'Blackberry'
  235.     /* WHEN user_agent LIKE '%Windows Phone%'
  236.         THEN LTRIM(SPLIT_PART(SPLIT_PART(user_agent,';', 2),';',  -1))*/
  237.     WHEN user_agent LIKE '%Opera Mini%'
  238.         THEN 'Opera Mini'
  239.     WHEN user_agent LIKE '%UCWEB%'
  240.         THEN LTRIM(CONCAT(' UCWEB_Browser ',REPLACE(LTRIM(SPLIT_PART(user_agent,';', 3)),'UCWEB/2.0 (MIDP-2.0; U; ','')))
  241.     WHEN user_agent LIKE '%Mozilla/5.0 (iPhone%'
  242.         THEN REPLACE(SPLIT_PART(user_agent,'like Mac OS X',1),'Mozilla/5.0 (iPhone; CPU ','')
  243.     WHEN user_agent LIKE '%iPod%'
  244.         THEN CONCAT('iPod ',REPLACE(SPLIT_PART(user_agent,'like Mac OS X', 1),'Mozilla/5.0 (iPod touch; CPU ',''))
  245.     WHEN user_agent LIKE '%iPad%'
  246.         THEN CONCAT('iPad ',REPLACE(SPLIT_PART(user_agent,'like Mac OS X', 1),'Mozilla/5.0 (iPad; CPU ',''))
  247.     WHEN user_agent LIKE '%(X11;%'
  248.         THEN REPLACE(SPLIT_PART(user_agent,')', 1),'Mozilla/5.0 (X11; ','')
  249.     ELSE user_agent
  250. END AS os_version,
  251. CASE
  252.     WHEN user_agent LIKE '%Firefox%'
  253.         THEN 'firefox'
  254.     WHEN user_agent LIKE '%Chrome%'
  255.         THEN 'chrome'
  256.     WHEN user_agent LIKE '%Safari%'
  257.         THEN 'safari'
  258.     WHEN user_agent LIKE '%Dalvik%'
  259.         THEN 'dalvik'
  260.     WHEN user_agent LIKE '%MSIE 7%'
  261.         THEN 'IE7'
  262.     WHEN user_agent LIKE '%MSIE 8%'
  263.         THEN 'IE8'
  264.     WHEN user_agent LIKE '%MSIE 9%'
  265.         THEN 'IE9'
  266.     WHEN user_agent LIKE '%MSIE 10%'
  267.         THEN 'IE10'
  268.     WHEN user_agent LIKE '%rv:11%'
  269.         THEN 'IE11'
  270.     WHEN user_agent LIKE '%like Mac OS X%'
  271.         THEN 'like Mac OS X'
  272.     ELSE user_agent
  273. END AS browser,
  274. b.carrier_type
  275. FROM u1 a
  276. LEFT JOIN luke.carrier_groups b ON a.ip_isp = b.carrier
  277. )
  278. ,u3 AS (
  279. SELECT
  280.   HOUR(datetime) AS HOUR,
  281.   CONCAT(SPLIT_PART(ip_address,'.',1),'.',SPLIT_PART(ip_address,'.',2),'.',SPLIT_PART(ip_address,'.',3)) AS c_class_ip,
  282.   *,
  283.   CASE
  284.         WHEN os_version LIKE '%Android%'
  285.             THEN 'Android'
  286.         WHEN os_version LIKE '%Windows%'
  287.             THEN 'Windows'
  288.         WHEN os_version LIKE '%iPhone%'
  289.             THEN 'iPhone'
  290.         WHEN os_version LIKE '%Mac OS X%'
  291.             THEN 'OS X'
  292.         WHEN os_version LIKE '%Linux%'
  293.             THEN 'Linux'
  294.         ELSE 'unknown'
  295.     END AS operating_system
  296. FROM u2
  297.   )
  298.   SELECT
  299.   HOUR,
  300.   SUM(inclicks) AS inclicks,
  301.   SUM(outclicks) AS outclicks,
  302.   ROUND(SUM(outclicks) / SUM(CAST(inclicks AS DOUBLE)), 3) AS ctr,
  303.   SUM(revenue) / SUM(outclicks) AS rpc,
  304.   ROUND((SUM(revenue) / SUM(CAST(inclicks AS DOUBLE))) * 1000, 2) AS rpm
  305.   FROM u3
  306.   GROUP BY HOUR
  307.   ORDER BY HOUR ASC
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement