Advertisement
machalda

Untitled

Nov 5th, 2018
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. select
  2.             sq.id_segment,
  3.             COALESCE(sq.fix_sum_m1, 0) as fix_sum_m1,
  4.             COALESCE(sq.fix_sum_m2, 0) as fix_sum_m2,
  5.             COALESCE(sq.fix_sum_m3, 0) as fix_sum_m3,
  6.             COALESCE(sq.delta_sum_m1, 0) as delta_sum_m1,
  7.             COALESCE(sq.delta_sum_m2, 0) as delta_sum_m2,
  8.             COALESCE(sq.delta_sum_m3, 0) as delta_sum_m3,
  9.             COALESCE(sq.hw_sum_m1, 0) as hw_sum_m1,
  10.             COALESCE(sq.hw_sum_m2, 0) as hw_sum_m2,
  11.             COALESCE(sq.hw_sum_m3, 0) as hw_sum_m3,
  12.             COALESCE(sq.kk_abs_sum_m1, 0) as kk_abs_sum_m1,
  13.             COALESCE(sq.kk_abs_sum_m2, 0) as kk_abs_sum_m2,
  14.             COALESCE(sq.kk_abs_sum_m3, 0) as kk_abs_sum_m3,
  15.             COALESCE(sq.kk_mtm_sum_m1, 0) as kk_mtm_sum_m1,
  16.             COALESCE(sq.kk_mtm_sum_m2, 0) as kk_mtm_sum_m2,
  17.             COALESCE(sq.kk_mtm_sum_m3, 0) as kk_mtm_sum_m3,
  18.             rank() OVER (ORDER BY sq.fix_sum_m1 DESC) as fix_rank_m1,
  19.             rank() OVER (ORDER BY sq.fix_sum_m2 DESC) as fix_rank_m2,
  20.             rank() OVER (ORDER BY sq.fix_sum_m3 DESC) as fix_rank_m3,
  21.             rank() OVER (ORDER BY sq.delta_sum_m1 DESC) as delta_rank_m1,
  22.             rank() OVER (ORDER BY sq.delta_sum_m2 DESC) as delta_rank_m2,
  23.             rank() OVER (ORDER BY sq.delta_sum_m3 DESC) as delta_rank_m3,
  24.             rank() OVER (ORDER BY sq.hw_sum_m1 DESC) as hw_rank_m1,
  25.             rank() OVER (ORDER BY sq.hw_sum_m2 DESC) as hw_rank_m2,
  26.             rank() OVER (ORDER BY sq.hw_sum_m3 DESC) as hw_rank_m3,
  27.             rank() OVER (ORDER BY sq.fix_sum_m1 DESC) * 0.3 +
  28.             rank() OVER (ORDER BY sq.delta_sum_m1 DESC) * 0.2 +
  29.             rank() OVER (ORDER BY sq.hw_sum_m1 DESC) * 0.5 as final_rank_m1,
  30.             rank() OVER (ORDER BY sq.fix_sum_m2 DESC) * 0.3 +
  31.             rank() OVER (ORDER BY sq.delta_sum_m2 DESC) * 0.2 +
  32.             rank() OVER (ORDER BY sq.hw_sum_m2 DESC) * 0.5 as final_rank_m2,
  33.             rank() OVER (ORDER BY sq.fix_sum_m3 DESC) * 0.3 +
  34.             rank() OVER (ORDER BY sq.delta_sum_m3 DESC) * 0.2 +
  35.             rank() OVER (ORDER BY sq.hw_sum_m3 DESC) * 0.5 as final_rank_m3,
  36.             (
  37.                 rank() OVER (ORDER BY sq.fix_sum_m1 DESC) * 0.3 +
  38.                 rank() OVER (ORDER BY sq.delta_sum_m1 DESC) * 0.2 +
  39.                 rank() OVER (ORDER BY sq.hw_sum_m1 DESC) * 0.5 +
  40.                 rank() OVER (ORDER BY sq.fix_sum_m2 DESC) * 0.3 +
  41.                 rank() OVER (ORDER BY sq.delta_sum_m2 DESC) * 0.2 +
  42.                 rank() OVER (ORDER BY sq.hw_sum_m2 DESC) * 0.5 +
  43.                 rank() OVER (ORDER BY sq.fix_sum_m3 DESC) * 0.3 +
  44.                 rank() OVER (ORDER BY sq.delta_sum_m3 DESC) * 0.2 +
  45.                 rank() OVER (ORDER BY sq.hw_sum_m3 DESC) * 0.5
  46.             ) / 3 as final_rank
  47.             FROM
  48.                 (SELECT
  49.                     main_query.id_segment,
  50.                     AVG(main_query.fix_sum_m1) AS fix_sum_m1,
  51.                     AVG(main_query.fix_sum_m2) AS fix_sum_m2,
  52.                     AVG(main_query.fix_sum_m3) AS fix_sum_m3,
  53.                     AVG(main_query.delta_sum_m1) AS delta_sum_m1,
  54.                     AVG(main_query.delta_sum_m2) AS delta_sum_m2,
  55.                     AVG(main_query.delta_sum_m3) AS delta_sum_m3,
  56.                     AVG(main_query.hw_sum_m1) AS hw_sum_m1,
  57.                     AVG(main_query.hw_sum_m2) AS hw_sum_m2,
  58.                     AVG(main_query.hw_sum_m3) AS hw_sum_m3,
  59.                     AVG(main_query.kk_abs_sum_m1) AS kk_abs_sum_m1,
  60.                     AVG(main_query.kk_abs_sum_m2) AS kk_abs_sum_m2,
  61.                     AVG(main_query.kk_abs_sum_m3) AS kk_abs_sum_m3,
  62.                     AVG(main_query.kk_mtm_sum_m1) AS kk_mtm_sum_m1,
  63.                     AVG(main_query.kk_mtm_sum_m2) AS kk_mtm_sum_m2,
  64.                     AVG(main_query.kk_mtm_sum_m3) AS kk_mtm_sum_m3
  65.                     from
  66.                     (select
  67.                         jq2.id_segment,
  68.                         COALESCE(sum(CASE WHEN data_type = 'fix' and contest_data.contest_month = 1 THEN price END) / coalesce(MIN(headcount_m1), 1), 0) as fix_sum_m1,
  69.                         COALESCE(sum(CASE WHEN data_type = 'fix' and contest_data.contest_month = 2 THEN price END) / coalesce(MIN(headcount_m2), 1), 0) as fix_sum_m2,
  70.                         COALESCE(sum(CASE WHEN data_type = 'fix' and contest_data.contest_month = 3 THEN price END) / coalesce(MIN(headcount_m3), 1), 0) as fix_sum_m3,
  71.                         COALESCE(sum(CASE WHEN data_type = 'delta' and contest_data.contest_month = 1 THEN price END) / coalesce(MIN(headcount_m1), 1), 0) as delta_sum_m1,
  72.                         COALESCE(sum(CASE WHEN data_type = 'delta' and contest_data.contest_month = 2 THEN price END) / coalesce(MIN(headcount_m2), 1), 0) as delta_sum_m2,
  73.                         COALESCE(sum(CASE WHEN data_type = 'delta' and contest_data.contest_month = 3 THEN price END) / coalesce(MIN(headcount_m3), 1), 0) as delta_sum_m3,
  74.                         COALESCE(sum(CASE WHEN data_type = 'hw' and contest_data.contest_month = 1 and contest_sap.id_contest_sap is not null THEN (CASE WHEN price < 4949 or po = '800790' THEN PRICE ELSE price * 5 END) END) / coalesce(MIN(headcount_m1), 1), 0) as hw_sum_m1,
  75.                         COALESCE(sum(CASE WHEN data_type = 'hw' and contest_data.contest_month = 2 and contest_sap.id_contest_sap is not null THEN (CASE WHEN price < 4949 or po = '800790' THEN PRICE ELSE price * 5 END) END) / coalesce(MIN(headcount_m2), 1), 0) as hw_sum_m2,
  76.                         COALESCE(sum(CASE WHEN data_type = 'hw' and contest_data.contest_month = 3 and contest_sap.id_contest_sap is not null THEN (CASE WHEN price < 4949 or po = '800790' THEN PRICE ELSE price * 5 END) END) / coalesce(MIN(headcount_m3), 1), 0) as hw_sum_m3,
  77.                         COALESCE(sum(CASE WHEN data_type = 'kk_abs' and contest_data.contest_month = 1 THEN price END) / coalesce(MIN(headcount_m1), 1), 0) as kk_abs_sum_m1,
  78.                         COALESCE(sum(CASE WHEN data_type = 'kk_abs' and contest_data.contest_month = 2 THEN price END) / coalesce(MIN(headcount_m3), 1), 0) as kk_abs_sum_m2,
  79.                         COALESCE(sum(CASE WHEN data_type = 'kk_abs' and contest_data.contest_month = 3 THEN price END) / coalesce(MIN(headcount_m1), 1), 0) as kk_abs_sum_m3,
  80.                         COALESCE(sum(CASE WHEN data_type = 'kk_mtm' and contest_data.contest_month = 1 THEN price END) / coalesce(MIN(headcount_m1), 1), 0) as kk_mtm_sum_m1,
  81.                         COALESCE(sum(CASE WHEN data_type = 'kk_mtm' and contest_data.contest_month = 2 THEN price END) / coalesce(MIN(headcount_m3), 1), 0) as kk_mtm_sum_m2,
  82.                         COALESCE(sum(CASE WHEN data_type = 'kk_mtm' and contest_data.contest_month = 3 THEN price END) / coalesce(MIN(headcount_m1), 1), 0) as kk_mtm_sum_m3
  83.                         from contest_data
  84.                         left join contest_sap on contest_data.contest_month = contest_sap.contest_month and contest_data.po = contest_sap.sap_code
  85.                         left join (
  86.                             select
  87.                             MIN(id_segment) as id_segment,
  88.                             sum(CASE WHEN contest_headcount.contest_month = 1 THEN headcount END) as headcount_m1,
  89.                             sum(CASE WHEN contest_headcount.contest_month = 2 THEN headcount END) as headcount_m2,
  90.                             sum(CASE WHEN contest_headcount.contest_month = 3 THEN headcount END) as headcount_m3,
  91.                             id_outlet_team
  92.                             from contest_microsegment
  93.                             left join contest_headcount using(id_outlet_team)
  94.                             WHERE segment_type = 'jam'
  95.                             group by id_outlet_team
  96.                         ) jq2 using(id_outlet_team)
  97.                         where id_channels IN (1, 2)
  98.                         and id_segment is not null
  99.                         group by jq2.id_segment, id_outlet_team) main_query
  100.                         group by id_segment) sq
  101.                 order by final_rank ASC
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement