Advertisement
Guest User

Untitled

a guest
Mar 26th, 2015
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 4.28 KB | None | 0 0
  1. SELECT
  2.                   COALESCE(cs_sub.DATE, ups_sub.DATE, uas_sub.DATE) AS dy,
  3.                   COALESCE(cs_sub.group_id, ups_sub.group_id, uas_sub.group_id) AS group_id,
  4.                   SUM(cs_sub.views) views,
  5.                   SUM(cs_sub.clicks) clicks,
  6.                   SUM(cs_sub.real_spent) real_spent,
  7.                   SUM(cs_sub.install_count) install_count,
  8.                   SUM(ups_sub.payer_count) payer_count,
  9.                   SUM(ups_sub.payment_count) payment_count,
  10.                   SUM(ups_sub.payment_amount) payment_amount,
  11.                   SUM(ups_sub.c_payment_amount) c_payment_amount,
  12.                   SUM(uas_sub.unique_count) unique_count,
  13.                   SUM(uas_sub.c_unique_count) c_unique_count,
  14.                   SUM(uas_active_sub.COUNT) active_count
  15.                 FROM (
  16.                     SELECT
  17.                       cs.DATE,
  18.                       SUM(cs.views) views,
  19.                       SUM(cs.clicks) clicks,
  20.                       SUM(cs.real_spent) real_spent,
  21.                       SUM(cs.install_count) install_count,
  22.                       ca.group_id
  23.                     FROM campaign_statistic cs
  24.                     INNER JOIN campaign ca ON ca.id = cs.campaign_id AND ca.application_id = $applicationId
  25.                     WHERE cs.DATE >= '$startDate' AND cs.DATE <= '$endDate'
  26.                     GROUP BY cs.DATE, ca.group_id
  27.                 ) cs_sub
  28.                 LEFT JOIN (
  29.                   SELECT
  30.                     cs.DATE,
  31.                     SUM(uas.COUNT) COUNT,
  32.                     ca.group_id
  33.                   FROM user_action_statistic uas
  34.                     INNER JOIN campaign_statistic cs ON cs.id = uas.campaign_statistic_id AND cs.DATE >= '$startDate' AND cs.DATE <= '$endDate'
  35.                     INNER JOIN campaign ca ON ca.id = cs.campaign_id
  36.                     INNER JOIN application a ON
  37.                       ca.application_id = a.id AND
  38.                       ca.application_id = $applicationId AND
  39.                       uas.action_type_id = (SELECT id FROM action_type WHERE TYPE='active_user' AND application_id = $applicationId)
  40.                   GROUP BY cs.DATE, ca.group_id
  41.                 ) uas_active_sub ON cs_sub.DATE = uas_active_sub.DATE AND cs_sub.group_id = uas_active_sub.group_id
  42.                 FULL OUTER JOIN (
  43.                   SELECT
  44.                     us.DATE,
  45.                     SUM(us.payer_count) payer_count,
  46.                     SUM(us.payment_count) payment_count,
  47.                     SUM(us.payment_amount) payment_amount,
  48.                     SUM(us.payment_amount*(cs.DATE != us.DATE)::INT) c_payment_amount,
  49.                     ca.group_id
  50.                   FROM user_payment_statistic us
  51.                     INNER JOIN campaign_statistic cs ON cs.id = us.campaign_statistic_id
  52.                     INNER JOIN campaign ca ON ca.id = cs.campaign_id AND ca.application_id = $applicationId
  53.                   WHERE us.DATE >= '$startDate' AND us.DATE <= '$endDate'
  54.                   GROUP BY us.DATE, ca.group_id
  55.                 ) ups_sub ON cs_sub.DATE = ups_sub.DATE AND cs_sub.group_id = ups_sub.group_id
  56.                 FULL OUTER JOIN (
  57.                   SELECT
  58.                     uas.DATE,
  59.                     SUM(uas.unique_count) unique_count,
  60.                     SUM(uas.unique_count*(cs.DATE != uas.DATE)::INT) c_unique_count,
  61.                     ca.group_id
  62.                   FROM user_action_statistic uas
  63.                     INNER JOIN campaign_statistic cs ON cs.id = uas.campaign_statistic_id
  64.                     INNER JOIN campaign ca ON ca.id = cs.campaign_id
  65.                     INNER JOIN application a ON
  66.                         ca.application_id = a.id AND
  67.                         ca.application_id = $applicationId AND
  68.                         uas.action_type_id = a.dau_action_type_id
  69.                   WHERE uas.DATE >= '$startDate' AND uas.DATE <= '$endDate'
  70.                   GROUP BY uas.DATE, ca.group_id
  71.                 ) uas_sub ON COALESCE(cs_sub.DATE, ups_sub.DATE) = uas_sub.DATE AND COALESCE(cs_sub.group_id, ups_sub.group_id) = uas_sub.group_id
  72.                 GROUP BY
  73.                   COALESCE(cs_sub.DATE, ups_sub.DATE, uas_sub.DATE),
  74.                   COALESCE(cs_sub.group_id, ups_sub.group_id, uas_sub.group_id)
  75.                 ORDER BY dy
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement