RumanticK

Untitled

Aug 22nd, 2014
498
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. SELECT
  2.     adv_stat.*, adv_ad.*
  3. FROM
  4.     adv_ad
  5. LEFT JOIN (
  6.     SELECT
  7.         COALESCE (
  8.             adv_stat_day_ad.ad_id,
  9.             adv_stat_day_goal.ad_id
  10.         ) AS ad_id,
  11.         SUM (adv_stat_day_ad.views) AS _views,
  12.         SUM (adv_stat_day_ad.clicks) AS _clicks,
  13.         SUM (adv_stat_day_ad.spent) AS _spent,
  14.         SUM (adv_stat_day_goal.conversions) AS _conv,
  15.         SUM (adv_stat_day_goal.revenue) AS _revenue,
  16.         MAX (adv_stat_day_ad.last_update) AS last_update,
  17.         CASE
  18.     WHEN COALESCE (SUM(adv_stat_day_ad.spent), 0) != 0 THEN
  19.         COALESCE (
  20.             SUM (adv_stat_day_goal.revenue) :: NUMERIC / NULLIF (SUM(adv_stat_day_ad.spent), 0),
  21.             0
  22.         )
  23.     END AS _roi,
  24.     CASE
  25. WHEN COALESCE (SUM(adv_stat_day_ad.views), 0) != 0 THEN
  26.     COALESCE (
  27.         SUM (adv_stat_day_ad.clicks) :: NUMERIC / NULLIF (SUM(adv_stat_day_ad.views), 0),
  28.         0
  29.     )
  30. ELSE
  31.     0
  32. END AS _ctr,
  33.  CASE
  34. WHEN COALESCE (
  35.     SUM (adv_stat_day_goal.conversions),
  36.     0
  37. ) != 0 THEN
  38.     COALESCE (
  39.         SUM (adv_stat_day_goal.conversions) :: NUMERIC / NULLIF (SUM(adv_stat_day_ad.clicks), 0),
  40.         0
  41.     )
  42. ELSE
  43.     0
  44. END AS _cvr,
  45.  CASE
  46. WHEN COALESCE (SUM(adv_stat_day_ad.views), 0) != 0 THEN
  47.     1000 * COALESCE (
  48.         SUM (adv_stat_day_ad.spent) :: NUMERIC / NULLIF (SUM(adv_stat_day_ad.views), 0),
  49.         0
  50.     )
  51. ELSE
  52.     0
  53. END AS _cpm,
  54.  CASE
  55. WHEN COALESCE (SUM(adv_stat_day_ad.clicks), 0) != 0 THEN
  56.     COALESCE (
  57.         SUM (adv_stat_day_ad.spent) :: NUMERIC / NULLIF (SUM(adv_stat_day_ad.clicks), 0),
  58.         0
  59.     )
  60. ELSE
  61.     0
  62. END AS _cpc,
  63.  CASE
  64. WHEN COALESCE (
  65.     SUM (adv_stat_day_goal.conversions),
  66.     0
  67. ) != 0 THEN
  68.     COALESCE (
  69.         SUM (adv_stat_day_ad.spent) :: NUMERIC / NULLIF (
  70.             SUM (adv_stat_day_goal.conversions),
  71.             0
  72.         ),
  73.         0
  74.     )
  75. ELSE
  76.     0
  77. END AS _cpa
  78. FROM
  79.     adv_stat_day_ad
  80. FULL JOIN adv_stat_day_goal ON adv_stat_day_ad.ad_id = adv_stat_day_goal.ad_id
  81. AND adv_stat_day_ad."day" = adv_stat_day_goal."day"
  82. WHERE
  83.     (
  84.         adv_stat_day_goal.project_goal_id IS NULL
  85.         OR adv_stat_day_goal.project_goal_id = 354
  86.     )
  87. AND (
  88.     adv_stat_day_ad. DAY BETWEEN '2013-01-01' :: DATE
  89.     AND 'TODAY' :: DATE
  90.     OR adv_stat_day_ad. DAY IS NULL
  91. )
  92. AND (
  93.     adv_stat_day_goal. DAY BETWEEN '2013-01-01' :: DATE
  94.     AND 'TODAY' :: DATE
  95.     OR adv_stat_day_goal. DAY IS NULL
  96. )
  97. GROUP BY
  98.     COALESCE (
  99.         adv_stat_day_ad.ad_id,
  100.         adv_stat_day_goal.ad_id
  101.     )
  102. ) AS adv_stat ON adv_stat.ad_id = adv_ad. ID
  103. WHERE
  104.     (adv_ad.status_loc != 99) AND adv_ad.project_id =  58
  105. ORDER BY
  106.     _views DESC NULLS LAST
  107. LIMIT 25
Advertisement
Add Comment
Please, Sign In to add comment