Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SET @start_date = DATE_SUB(CURDATE(), INTERVAL 10 DAY);
- SET @end_date = DATE_SUB(CURDATE(), INTERVAL 1 DAY);
- DROP TEMPORARY TABLE IF EXISTS
- tmp_junior_sales_managers;
- CREATE TEMPORARY TABLE
- tmp_junior_sales_managers
- (KEY (user_id, `date`))
- SELECT
- umd.`date`,
- umd.user_id,
- IFNULL(u.name_eng, u.nickname) AS junior_sales_manager
- FROM
- rabota_db.npm_user_manager_by_date umd
- JOIN rabota_db.`user` u
- ON u.user_id = umd.manager_id
- WHERE
- umd.`type` = 'junior_sales_manager'
- AND umd.`date` BETWEEN DATE(@start_date) AND DATE(@end_date);
- DROP TEMPORARY TABLE IF EXISTS
- tmp_sales_managers;
- CREATE TEMPORARY TABLE
- tmp_sales_managers
- (KEY (user_id, `date`))
- SELECT
- umd.`date`,
- umd.user_id,
- IFNULL(u.name_eng, u.nickname) AS sales_manager
- FROM
- rabota_db.npm_user_manager_by_date umd
- JOIN rabota_db.`user` u
- ON u.user_id = umd.manager_id
- WHERE
- umd.`type` = 'sales_manager'
- AND umd.`date` BETWEEN DATE(@start_date) AND DATE(@end_date);
- DROP TEMPORARY TABLE IF EXISTS
- tmp_account_managers;
- CREATE TEMPORARY TABLE
- tmp_account_managers
- (KEY (user_id, `date`))
- SELECT
- umd.`date`,
- umd.user_id,
- IFNULL(u.name_eng, u.nickname) AS account_manager
- FROM
- rabota_db.npm_user_manager_by_date umd
- JOIN rabota_db.`user` u
- ON u.user_id = umd.manager_id
- WHERE
- umd.`type` = 'account_manager'
- AND umd.`date` BETWEEN DATE(@start_date) AND DATE(@end_date);
- DROP TEMPORARY TABLE IF EXISTS tmp_user_country;
- CREATE TEMPORARY TABLE tmp_user_country (KEY(`user_id`))
- SELECT u.user_id, ccr.`country_short_name` AS user_country
- FROM rabota_db.`user` u
- LEFT JOIN tablo.`country_commercial_region` ccr
- ON u.`country` = ccr.`country_code`;
- DROP TEMPORARY TABLE IF EXISTS tmp_adserver_unfilled;
- CREATE TEMPORARY TABLE tmp_adserver_unfilled (KEY (`date`, sa_site_id, demand_id))
- SELECT
- a.`date`,
- b.sa_site_id,
- a.network_id,
- SUM(
- a.ad_server_unfilled_impressions
- ) AS unfilled_impressions,
- (
- CASE
- WHEN network_id = 45470634
- THEN 64
- WHEN network_id = 21779055067
- THEN 85
- END
- ) AS demand_id
- FROM
- tablo.gam_ad_server_data a
- JOIN rabota_db.site_area_design_24 b
- ON a.ad_unit_id = b.dfp_adunit_id
- WHERE a.`date` BETWEEN DATE(@start_date) AND DATE(@end_date)
- GROUP BY a.`date`,
- b.sa_site_id,
- a.network_id;
- DROP TEMPORARY TABLE IF EXISTS
- tmp_demand_stat;
- CREATE TEMPORARY TABLE
- tmp_demand_stat
- (KEY (`date`))
- SELECT
- sc.`date`,
- sc.user_id,
- sc.site_id,
- IFNULL(s.url_domain, s.url) AS url,
- IFNULL(sm.sales_manager, 'None') AS sales_manager,
- IFNULL(am.account_manager, 'None') AS account_manager,
- IFNULL(jsm.junior_sales_manager, 'None') AS junior_sales_manager,
- sc.adv_net_id AS demand_id,
- SUM(sc.external_view_count) AS impressions,
- SUM(sc.external_first_view_count) AS first_impressions,
- SUM(sc.external_viewability_measured_impressions) AS viewability_measured,
- SUM(sc.external_viewability_viewed_impressions) AS viewability_viewed,
- SUM(sc.adv_expense_gbp) AS adv_expense_gbp,
- SUM(sc.partner_gain_gbp) AS partner_gain_gbp,
- SUM(sc.adv_expense_base) AS adv_expense_rub,
- SUM(sc.partner_gain_base) AS partner_gain_rub,
- SUM(sc.hit_count) AS clicks,
- SUM(sc.external_first_request_count) AS requests,
- unf.unfilled_impressions AS unfilled_impressions,
- uc.user_country
- FROM
- rabota_db.npm_site_area_stat_cache sc
- JOIN rabota_db.`site` s
- ON s.site_id = sc.site_id
- LEFT JOIN tmp_sales_managers sm
- ON sm.user_id = sc.user_id
- AND sm.`date` = sc.`date`
- LEFT JOIN tmp_account_managers am
- ON am.user_id = sc.user_id
- AND am.`date` = sc.`date`
- LEFT JOIN tmp_junior_sales_managers jsm
- ON jsm.user_id = sc.user_id
- AND jsm.date = sc.date
- LEFT JOIN tmp_user_country uc
- ON uc.user_id = sc.user_id
- LEFT JOIN tmp_adserver_unfilled unf
- ON sc.date = unf.date
- AND sc.site_id = unf.sa_site_id
- AND sc.adv_net_id = unf.demand_id
- WHERE
- sc.`date` BETWEEN DATE(@start_date) AND DATE(@end_date)
- GROUP BY
- sc.`date`,
- sc.site_id,
- sc.adv_net_id
- HAVING
- SUM(sc.adv_expense) > 0;
- DROP TEMPORARY TABLE IF EXISTS
- tmp_usd_rate;
- CREATE TEMPORARY TABLE
- tmp_usd_rate
- (KEY (`date`))
- SELECT
- e.`date`,
- AVG(e.exrate) AS exrate
- FROM
- rabota_db.exchange_rate e
- WHERE
- e.`date` BETWEEN DATE(@start_date) AND DATE(@end_date)
- AND e.source_cur_id = 6
- AND e.destination_cur_id = 2
- GROUP BY
- e.`date`;
- DROP TEMPORARY TABLE IF EXISTS
- tmp_eur_rate;
- CREATE TEMPORARY TABLE
- tmp_eur_rate
- (KEY (`date`))
- SELECT
- e.`date`,
- AVG(e.exrate) AS exrate
- FROM
- rabota_db.exchange_rate e
- WHERE
- e.`date` BETWEEN DATE(@start_date) AND DATE(@end_date)
- AND e.source_cur_id = 6
- AND e.destination_cur_id = 4
- GROUP BY
- e.`date`;
- DROP TEMPORARY TABLE IF EXISTS tmp_rub_rate;
- CREATE TEMPORARY TABLE tmp_rub_rate (KEY (`date`))
- SELECT
- e.`date`,
- AVG(e.exrate) AS exrate
- FROM rabota_db.exchange_rate e
- WHERE e.`date` BETWEEN DATE(@start_date) AND DATE(@end_date)
- AND e.source_cur_id = 6
- AND e.destination_cur_id = 1
- GROUP BY e.`date`;
- DROP TEMPORARY TABLE IF EXISTS
- tmp_site_create_date;
- CREATE TEMPORARY TABLE
- tmp_site_create_date
- (KEY (site_id))
- SELECT
- sc.site_id,
- MIN(sc.`date`) AS site_create_date
- FROM
- tablo.activation_dates sc
- GROUP BY
- sc.site_id;
- DROP TEMPORARY TABLE IF EXISTS
- tmp_user_create_date;
- CREATE TEMPORARY TABLE
- tmp_user_create_date
- (KEY (user_id))
- SELECT
- sc.user_id,
- MIN(sc.`date`) AS user_create_date
- FROM
- tablo.activation_dates sc
- GROUP BY
- sc.user_id;
- #user_segment
- DROP TEMPORARY TABLE IF EXISTS bob_date_pub;
- CREATE TEMPORARY TABLE bob_date_pub
- SELECT
- `date`,
- IFNULL(u.`moved_to_user_id`,r.`publisher_id`) AS publisher_id,
- SUM(r.`adv_expense_gbp`) AS adv_expense_gbp
- FROM
- bi.book_of_business_report r
- JOIN rabota_db.`user` u
- ON (r.`publisher_id` = u.`user_id`)
- GROUP BY IFNULL(u.`moved_to_user_id`,r.`publisher_id`),
- `date`
- HAVING SUM(r.`adv_expense_gbp`)>1;
- #summary for each publisher, no date filtering
- DROP TEMPORARY TABLE IF EXISTS bob_pub_summary;
- CREATE TEMPORARY TABLE bob_pub_summary (KEY (publisher_id))
- SELECT
- r.publisher_id,
- CASE
- WHEN AVG(`adv_expense_gbp`)>=0 AND AVG(`adv_expense_gbp`)<50 THEN '[1] <50'
- WHEN AVG(`adv_expense_gbp`)>=50 AND AVG(`adv_expense_gbp`)<500 THEN '[2] 50-500'
- WHEN AVG(`adv_expense_gbp`)>=500 AND AVG(`adv_expense_gbp`)<1000 THEN '[3] 500-1000'
- WHEN AVG(`adv_expense_gbp`)>=1000 AND AVG(`adv_expense_gbp`)<5000 THEN '[4] 1000-5000'
- WHEN AVG(`adv_expense_gbp`)>=5000 AND AVG(`adv_expense_gbp`)<10000 THEN '[5] 5000-10000'
- WHEN AVG(`adv_expense_gbp`)>=10000 THEN '[6] 10000+'
- ELSE 'error'
- END AS revenue_segment
- FROM
- bob_date_pub r
- JOIN rabota_db.`user` u
- ON (r.`publisher_id` = u.`user_id`)
- WHERE r.`adv_expense_gbp`>1 AND u.`billing_source`!='nobilling' AND r.`publisher_id`>0
- GROUP BY r.`publisher_id`;
- #site_segment
- DROP TEMPORARY TABLE IF EXISTS bob_date_site;
- CREATE TEMPORARY TABLE bob_date_site
- SELECT
- `date`,
- site_id,
- IFNULL(u.`moved_to_user_id`,r.`publisher_id`) AS publisher_id,
- SUM(r.`adv_expense_gbp`) AS adv_expense_gbp
- FROM
- bi.book_of_business_report r
- JOIN rabota_db.`user` u
- ON (r.`publisher_id` = u.`user_id`)
- GROUP BY IFNULL(u.`moved_to_user_id`,r.`publisher_id`),
- `date`,
- site_id
- HAVING SUM(r.`adv_expense_gbp`)>1;
- #summary for each publisher, no date filtering
- DROP TEMPORARY TABLE IF EXISTS bob_site_summary;
- CREATE TEMPORARY TABLE bob_site_summary (KEY (site_id))
- SELECT
- r.site_id,
- CASE
- WHEN AVG(`adv_expense_gbp`)>=0 AND AVG(`adv_expense_gbp`)<50 THEN '[1] <50'
- WHEN AVG(`adv_expense_gbp`)>=50 AND AVG(`adv_expense_gbp`)<500 THEN '[2] 50-500'
- WHEN AVG(`adv_expense_gbp`)>=500 AND AVG(`adv_expense_gbp`)<1000 THEN '[3] 500-1000'
- WHEN AVG(`adv_expense_gbp`)>=1000 AND AVG(`adv_expense_gbp`)<5000 THEN '[4] 1000-5000'
- WHEN AVG(`adv_expense_gbp`)>=5000 AND AVG(`adv_expense_gbp`)<10000 THEN '[5] 5000-10000'
- WHEN AVG(`adv_expense_gbp`)>=10000 THEN '[6] 10000+'
- ELSE 'error'
- END AS revenue_segment
- FROM
- bob_date_site r
- JOIN rabota_db.`user` u
- ON (r.`publisher_id` = u.`user_id`)
- WHERE r.`adv_expense_gbp`>1 AND u.`billing_source`!='nobilling' AND r.`publisher_id`>0
- GROUP BY r.`site_id`;
- # list of dates for sites when adv_expense_gbp > 0.2
- DROP TEMPORARY TABLE IF EXISTS site_date_expense_02;
- CREATE TEMPORARY TABLE site_date_expense_02 (KEY (site_id))
- SELECT
- sc.`site_id`,
- sc.`date`,
- SUM(sc.`adv_expense_gbp`) AS adv_expense_gbp
- FROM
- rabota_db.`npm_site_area_stat_cache` sc
- WHERE sc.date BETWEEN DATE(@start_date)
- AND DATE(@end_date)
- GROUP BY sc.`site_id`,
- sc.`date`
- HAVING SUM(sc.`adv_expense_gbp`) > 0.2;
- #copy of site_date_expense_02 for Update
- DROP TEMPORARY TABLE IF EXISTS site_date_expense_02_b;
- CREATE TEMPORARY TABLE site_date_expense_02_b (KEY (site_id))
- SELECT
- sc.`site_id`,
- sc.`date`,
- SUM(sc.`adv_expense_gbp`) AS adv_expense_gbp
- FROM
- rabota_db.`npm_site_area_stat_cache` sc
- WHERE sc.date BETWEEN DATE(@start_date)
- AND DATE(@end_date)
- GROUP BY sc.`site_id`,
- sc.`date`
- HAVING SUM(sc.`adv_expense_gbp`) > 0.2;
- # list of sites with last date when adv_expense_gbp > 1, excluding yesterday; in other words, deactivated sites
- # logic: if yesterday adv_expense_gbp is > 1, then site is active, otherwise it is deactivated
- DROP TEMPORARY TABLE IF EXISTS site_deactiv_1;
- CREATE TEMPORARY TABLE site_deactiv_1 (KEY (site_id))
- SELECT
- sde02.site_id,
- MAX(sde02.date) AS site_deactivation_date
- FROM
- site_date_expense_02 sde02
- WHERE
- sde02.adv_expense_gbp > 1
- GROUP BY sde02.site_id
- HAVING MAX(sde02.date) < DATE_SUB(CURDATE(), INTERVAL 1 DAY);
- # list of sites with last date when adv_expense_gbp > 0.2, excluding yesterday; in other words, deactivated sites
- # logic: if yesterday adv_expense_gbp is > 0.2, then site is active, otherwise it is deactivated
- DROP TEMPORARY TABLE IF EXISTS site_deactiv_02;
- CREATE TEMPORARY TABLE site_deactiv_02 (KEY (site_id))
- SELECT
- sde02.site_id,
- MAX(sde02.date) AS site_deactivation_date
- FROM
- site_date_expense_02 sde02
- GROUP BY sde02.site_id
- HAVING MAX(sde02.date) < DATE_SUB(CURDATE(), INTERVAL 1 DAY);
- # list of dates for users when adv_expense_gbp > 1
- DROP TEMPORARY TABLE IF EXISTS user_date_expense_1;
- CREATE TEMPORARY TABLE user_date_expense_1 (KEY (user_id))
- SELECT
- sc.`user_id`,
- sc.`date`,
- SUM(sc.`adv_expense_gbp`) AS adv_expense_gbp
- FROM
- rabota_db.`npm_site_area_stat_cache` sc
- WHERE sc.date BETWEEN DATE(@start_date)
- AND DATE(@end_date)
- GROUP BY sc.`user_id`,
- sc.`date`
- HAVING SUM(sc.`adv_expense_gbp`) > 1;
- DROP TEMPORARY TABLE IF EXISTS user_date_expense_1_move;
- CREATE TEMPORARY TABLE user_date_expense_1_move (KEY (real_user))
- SELECT
- ude1.`user_id`,
- ude1.`date`,
- ude1.`adv_expense_gbp`,
- IFNULL(u.moved_to_user_id, ude1.user_id) AS real_user
- FROM
- user_date_expense_1 ude1
- JOIN rabota_db.`user` u ON ude1.user_id = u.user_id;
- # list of users with last date when adv_expense_gbp > 1, excluding yesterday; in other words, deactivated users
- # logic: if yesterday adv_expense_gbp is > 1, then user is active, otherwise it is deactivated
- DROP TEMPORARY TABLE IF EXISTS user_deactiv_1;
- CREATE TEMPORARY TABLE user_deactiv_1 (KEY (real_user))
- SELECT
- ude1m.real_user,
- MAX(ude1m.date) AS user_deactivation_date
- FROM
- user_date_expense_1_move ude1m
- GROUP BY ude1m.real_user
- HAVING MAX(ude1m.date) < DATE_SUB(CURDATE(), INTERVAL 1 DAY);
- # current status for newly inserted sites
- # otherwise adv_expense_gbp < 1 will remain Null when they may already have deactivation dates
- DROP TEMPORARY TABLE IF EXISTS site_deactiv_current;
- CREATE TEMPORARY TABLE site_deactiv_current (KEY (site_id))
- SELECT DISTINCT
- c.site_id,
- c.site_deactivation_date
- FROM
- tablo.commercial_regions_daily_revenue c;
- # current status for newly inserted users
- # otherwise adv_expense_gbp < 1 will remain Null when they may already have deactivation dates
- DROP TEMPORARY TABLE IF EXISTS user_deactiv_current;
- CREATE TEMPORARY TABLE user_deactiv_current (KEY (user_id))
- SELECT DISTINCT
- c.user_id,
- c.user_deactivation_date
- FROM
- tablo.commercial_regions_daily_revenue c
- WHERE demand_id <> -1
- ;
- # list of current account managers
- DROP TEMPORARY TABLE IF EXISTS curr_acc_manager;
- CREATE TEMPORARY TABLE curr_acc_manager (KEY (user_id))
- SELECT
- umd.user_id,
- IFNULL(u.name_eng, u.nickname) AS account_manager
- FROM
- rabota_db.npm_user_manager_by_date umd
- JOIN rabota_db.`user` u
- ON u.user_id = umd.manager_id
- WHERE
- umd.`type` = 'account_manager'
- AND umd.`date` = DATE(@end_date);
- DELETE FROM
- tablo.commercial_regions_daily_revenue
- WHERE
- `date` BETWEEN DATE(@start_date) AND DATE(@end_date);
- INSERT INTO
- tablo.commercial_regions_daily_revenue
- (
- `date`,
- user_id,
- site_id,
- url,
- sales_manager,
- account_manager,
- junior_sales_manager,
- demand_id,
- impressions,
- first_impressions,
- viewability_measured,
- viewability_viewed,
- adv_expense_gbp,
- partner_gain_gbp,
- adv_expense_rub,
- partner_gain_rub,
- adv_expense_usd,
- partner_gain_usd,
- adv_expense_eur,
- partner_gain_eur,
- clicks,
- requests,
- unfilled_impressions,
- user_country
- )
- SELECT
- d.`date`,
- d.user_id,
- d.site_id,
- d.url,
- d.sales_manager,
- d.account_manager,
- d.junior_sales_manager,
- d.demand_id,
- d.impressions,
- d.first_impressions,
- d.viewability_measured,
- d.viewability_viewed,
- d.adv_expense_gbp,
- d.partner_gain_gbp,
- d.adv_expense_rub,
- d.partner_gain_rub,
- ROUND(d.adv_expense_gbp * u.exrate, 8),
- ROUND(d.partner_gain_gbp * u.exrate, 8),
- ROUND(d.adv_expense_gbp * e.exrate, 8),
- ROUND(d.partner_gain_gbp * e.exrate, 8),
- clicks,
- requests,
- unfilled_impressions,
- user_country
- FROM
- tmp_demand_stat d
- JOIN tmp_usd_rate u
- ON u.`date` = d.`date`
- JOIN tmp_eur_rate e
- ON e.`date` = d.`date`;
- # temporary solution; dioguinho.pt moved to dioguinho.com with old site_id, new site_id is useless, has some residual stats
- DELETE FROM
- tablo.commercial_regions_daily_revenue
- WHERE
- site_id = 221255;
- DROP TEMPORARY TABLE IF EXISTS tmp_reactivation_sites;
- CREATE TEMPORARY TABLE tmp_reactivation_sites (KEY(reactivation_date, site_id))
- SELECT site_id, MAX(reactivation_date) AS reactivation_date
- FROM tablo.`reactivation_sites`
- GROUP BY site_id;
- #custom for akket.com
- UPDATE tablo.`commercial_regions_daily_revenue`
- SET site_create_date = '2022-03-18'
- WHERE site_id = 210511;
- UPDATE
- tablo.commercial_regions_daily_revenue c
- LEFT JOIN rabota_db.demand_source d
- ON d.cmf_system_id = c.demand_id
- SET
- c.demand_name = IFNULL(d.name, 'Unknown');
- # determine top sites of users
- # for active users
- # temp tables are created here, because updated user deactivation date is used
- # last 30 days stats of active users by site
- DROP TEMPORARY TABLE IF EXISTS
- active_user_site_a;
- CREATE TEMPORARY TABLE
- active_user_site_a
- (KEY (user_id, url))
- SELECT
- t.user_id, t.`url`, SUM(t.`adv_expense_gbp`) AS total_adv_expense_gbp
- FROM
- tablo.commercial_regions_daily_revenue t
- WHERE
- t.user_deactivation_date IS NULL
- AND t.date BETWEEN DATE_SUB(CURDATE(), INTERVAL 30 DAY) AND DATE(@end_date)
- GROUP BY
- t.user_id, t.`url`
- HAVING
- SUM(t.`adv_expense_gbp`) > 0;
- # last 30 days stats of active users by site; copy of previous temp table, because temp tables cannot be used twice in one query
- DROP TEMPORARY TABLE IF EXISTS
- active_user_site_b;
- CREATE TEMPORARY TABLE
- active_user_site_b
- (KEY (user_id, url))
- SELECT
- t.user_id, t.`url`, SUM(t.`adv_expense_gbp`) AS total_adv_expense_gbp
- FROM
- tablo.commercial_regions_daily_revenue t
- WHERE
- t.user_deactivation_date IS NULL
- AND t.date BETWEEN DATE_SUB(CURDATE(), INTERVAL 30 DAY) AND DATE(@end_date)
- GROUP BY
- t.user_id, t.`url`
- HAVING
- SUM(t.`adv_expense_gbp`) > 0;
- # top sites of active users based on last 30 days
- DROP TEMPORARY TABLE IF EXISTS
- top_user_site_activ;
- CREATE TEMPORARY TABLE
- top_user_site_activ
- (KEY (user_id, url))
- SELECT
- a.user_id, a.url
- FROM
- active_user_site_a a
- WHERE
- a.total_adv_expense_gbp = (SELECT MAX(total_adv_expense_gbp) FROM active_user_site_b b WHERE b.user_id = a.user_id);
- # for deactivated users
- # all time stats of deactivated users by site
- DROP TEMPORARY TABLE IF EXISTS
- bob_top_user_site_a;
- CREATE TEMPORARY TABLE
- bob_top_user_site_a
- (KEY (publisher_id, site_url))
- SELECT
- t.publisher_id, t.`site_url`, SUM(t.`adv_expense_gbp`) AS total_adv_expense_gbp
- FROM
- bi.`book_of_business_report` t
- GROUP BY
- t.publisher_id, t.`site_url`
- HAVING
- SUM(t.`adv_expense_gbp`) > 0;
- # all time stats of deactivated users by site; copy of previous temp table, because temp tables cannot be used twice in one query
- DROP TEMPORARY TABLE IF EXISTS
- bob_top_user_site_b;
- CREATE TEMPORARY TABLE
- bob_top_user_site_b
- (KEY (publisher_id, site_url))
- SELECT
- t.publisher_id, t.`site_url`, SUM(t.`adv_expense_gbp`) AS total_adv_expense_gbp
- FROM
- bi.`book_of_business_report` t
- GROUP BY
- t.publisher_id, t.`site_url`
- HAVING
- SUM(t.`adv_expense_gbp`) > 0;
- # top sites of deactivated users based on all time stats
- DROP TEMPORARY TABLE IF EXISTS
- top_user_site_deactiv;
- CREATE TEMPORARY TABLE
- top_user_site_deactiv
- (KEY (publisher_id, site_url))
- SELECT
- a.publisher_id, a.site_url
- FROM
- bob_top_user_site_a a
- WHERE
- a.total_adv_expense_gbp = (SELECT MAX(total_adv_expense_gbp) FROM bob_top_user_site_b b WHERE b.publisher_id = a.publisher_id);
- DROP TEMPORARY TABLE IF EXISTS tmp_final_update;
- CREATE TEMPORARY TABLE tmp_final_update (KEY(site_id))
- SELECT
- s.`site_id`,
- s.`user_id`,
- IFNULL(am.account_manager, 'None') AS account_manager_current,
- user_activ.user_create_date,
- u.`email` AS user_email,
- IFNULL(u.commercial_region, 'other') AS commercial_region,
- bob_pub.revenue_segment AS user_segment,
- bob_site.revenue_segment AS site_segment,
- site_activ.site_create_date,
- r.`reactivation_date` AS reactivation_month,
- CASE
- WHEN site_deac_curr.site_id IS NOT NULL THEN site_deac_curr.site_deactivation_date
- WHEN
- (bob_site.revenue_segment = '[1] <50' OR
- ((bob_site.revenue_segment != '[1] <50' OR bob_site.revenue_segment IS NULL)
- AND site_02_b.site_id IS NOT NULL)) THEN NULL
- WHEN (bob_site.revenue_segment != '[1] <50' OR bob_site.revenue_segment IS NULL) THEN sd1.site_deactivation_date
- WHEN (bob_site.revenue_segment = '[1] <50') THEN sd02.site_deactivation_date
- END AS site_deactivation_date,
- CASE
- WHEN user_deac_curr.user_id IS NOT NULL THEN user_deac_curr.user_deactivation_date
- WHEN ude1.real_user IS NOT NULL THEN NULL
- WHEN ud1.real_user IS NOT NULL THEN ud1.user_deactivation_date
- END AS user_deactivation_date,
- IF(
- CASE
- WHEN user_deac_curr.user_id IS NOT NULL THEN user_deac_curr.user_deactivation_date
- WHEN ude1.real_user IS NOT NULL THEN NULL
- WHEN ud1.real_user IS NOT NULL THEN ud1.user_deactivation_date
- END IS NOT NULL, u.`stopping_reason`, NULL) AS user_stop_reason,
- IF(
- CASE
- WHEN user_deac_curr.user_id IS NOT NULL THEN user_deac_curr.user_deactivation_date
- WHEN ude1.real_user IS NOT NULL THEN NULL
- WHEN ud1.real_user IS NOT NULL THEN ud1.user_deactivation_date
- END IS NULL, top_activ.url, top_deac.site_url) AS user_top_site
- FROM rabota_db.`site` s
- JOIN rabota_db.`user` u
- ON u.`user_id` = s.`user_id`
- LEFT JOIN bob_pub_summary bob_pub
- ON bob_pub.publisher_id = s.user_id
- LEFT JOIN tmp_user_create_date user_activ
- ON user_activ.user_id = s.user_id
- LEFT JOIN curr_acc_manager am
- ON am.user_id = s.user_id
- LEFT JOIN bob_site_summary bob_site
- ON bob_site.site_id = s.site_id
- LEFT JOIN tmp_site_create_date site_activ
- ON site_activ.site_id = s.site_id
- LEFT JOIN tmp_reactivation_sites r
- ON r.`site_id` = s.`site_id`
- LEFT JOIN (SELECT DISTINCT site_id FROM site_date_expense_02) site_02
- ON site_02.site_id = s.`site_id`
- LEFT JOIN (SELECT DISTINCT site_id FROM site_date_expense_02_b WHERE adv_expense_gbp > 1) site_02_b
- ON site_02_b.site_id = s.`site_id`
- LEFT JOIN site_deactiv_1 sd1
- ON sd1.site_id = s.site_id
- LEFT JOIN site_deactiv_02 sd02
- ON sd02.site_id = s.site_id
- LEFT JOIN (SELECT DISTINCT real_user FROM user_date_expense_1_move) ude1
- ON ude1.real_user = s.user_id
- LEFT JOIN user_deactiv_1 ud1
- ON ud1.real_user = s.user_id
- LEFT JOIN top_user_site_activ top_activ
- ON top_activ.user_id = s.user_id
- LEFT JOIN top_user_site_deactiv top_deac
- ON top_deac.publisher_id = s.user_id
- LEFT JOIN site_deactiv_current site_deac_curr
- ON site_deac_curr.site_id = s.site_id
- LEFT JOIN user_deactiv_current user_deac_curr
- ON user_deac_curr.user_id = s.user_id
- ;
- UPDATE tablo.`commercial_regions_daily_revenue` c
- LEFT JOIN tmp_final_update tmp
- ON c.`site_id` = tmp.site_id
- SET
- c.`account_manager_current` = tmp.account_manager_current,
- c.user_create_date = tmp.user_create_date,
- c.`user_email` = tmp.user_email,
- c.commercial_region = tmp.commercial_region,
- c.user_segment = tmp.user_segment,
- c.site_segment = tmp.site_segment,
- c.`site_create_date` = tmp.site_create_date,
- c.reactivation_month = tmp.reactivation_month,
- c.site_deactivation_date = tmp.site_deactivation_date,
- c.user_deactivation_date = tmp.user_deactivation_date,
- c.user_stop_reason = tmp.user_stop_reason,
- c.user_top_site = tmp.user_top_site
- ;
- DELETE FROM
- tablo.commercial_regions_daily_revenue_no_ds
- WHERE
- `date` BETWEEN DATE(@start_date) AND DATE(@end_date);
- INSERT INTO
- tablo.commercial_regions_daily_revenue_no_ds
- (
- `date`,
- user_id,
- site_id,
- url,
- sales_manager,
- account_manager,
- impressions,
- viewability_measured,
- viewability_viewed,
- adv_expense_gbp,
- partner_gain_gbp,
- adv_expense_rub,
- partner_gain_rub,
- adv_expense_usd,
- partner_gain_usd,
- adv_expense_eur,
- partner_gain_eur,
- unfilled_impressions
- )
- SELECT
- c.`date`,
- c.user_id,
- c.site_id,
- c.url,
- c.sales_manager,
- c.account_manager,
- SUM(c.impressions),
- SUM(c.viewability_measured),
- SUM(c.viewability_viewed),
- SUM(c.adv_expense_gbp),
- SUM(c.partner_gain_gbp),
- SUM(c.adv_expense_rub),
- SUM(c.partner_gain_rub),
- SUM(c.adv_expense_usd),
- SUM(c.partner_gain_usd),
- SUM(c.adv_expense_eur),
- SUM(c.partner_gain_eur),
- SUM(c.unfilled_impressions)
- FROM
- tablo.commercial_regions_daily_revenue c
- WHERE
- c.`date` BETWEEN DATE(@start_date) AND DATE(@end_date)
- AND c.demand_id <> -1
- GROUP BY
- c.`date`,
- c.site_id;
- UPDATE
- tablo.commercial_regions_daily_revenue_no_ds c
- LEFT JOIN rabota_db.`user` u
- ON u.user_id = c.user_id
- LEFT JOIN tmp_site_create_date s
- ON s.site_id = c.site_id
- SET
- c.commercial_region = IFNULL(u.commercial_region, 'other'),
- c.site_create_date = s.site_create_date;
- UPDATE
- tablo.commercial_regions_daily_revenue a
- LEFT JOIN rabota_db.site s
- ON s.site_id = a.site_id
- LEFT JOIN rabota_db.site_category c
- ON c.category_id = s.category_id
- SET
- a.site_category = IFNULL(c.name, 'Unknown')
- WHERE a.`date` BETWEEN @start_date AND @end_date;
- DROP TEMPORARY TABLE IF EXISTS pipedrive_data;
- CREATE TEMPORARY TABLE pipedrive_data (KEY(publisher_id))
- SELECT po.organization_custom_clickio_user_id AS publisher_id,
- GROUP_CONCAT(poa.label) AS 'pd_org_lead_channel'
- FROM rabota_db.pipedrive_organization po
- JOIN rabota_db.pipedrive_organization_attrs poa
- ON po.organization_id = poa.organization_id AND poa.attr_name = 'lead_channel'
- WHERE po.organization_custom_clickio_user_id IS NOT NULL
- GROUP BY po.organization_id;
- UPDATE tablo.`commercial_regions_daily_revenue` r
- LEFT JOIN pipedrive_data pd
- ON pd.publisher_id = r.user_id
- SET r.lead_channel = pd.pd_org_lead_channel
- WHERE r.`date` BETWEEN @start_date AND @end_date;
- #user_bu_id,user_billing_country,user_payment_method
- UPDATE tablo.`commercial_regions_daily_revenue` r USE INDEX (DATE)
- JOIN bi.user u ON (r.user_id=u.user_id)
- SET
- r.user_bu_id=IF(u.user_subnet_id=19,13,IF(u.user_subnet_id=21,15,0)),
- r.user_billing_country = u.user_billing_country,
- r.user_payment_method=u.payment_method,
- r.user_tag=u.user_tag
- WHERE r.`date` BETWEEN @start_date AND @end_date;
- #demand_bu_id
- UPDATE tablo.`commercial_regions_daily_revenue` r USE INDEX (DATE)
- JOIN rabota_db.cmf_system cs ON (r.demand_id=cs.cmf_system_id)
- SET r.demand_bu_id=cs.business_unit_id
- WHERE r.`date` BETWEEN @start_date AND @end_date;
- #Jacopo asked to remove publisher deactivation date for these publishers temporarily
- UPDATE tablo.`commercial_regions_daily_revenue`
- SET user_deactivation_date = NULL
- WHERE user_id IN (145101, 146953);
- SELECT
- 1 AS STATUS,
- 'OK' AS message;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement