zquery/Request/PUMA/Robert/branch_cluster_productivity...

112 lines
7.8 KiB
SQL

with datarange as (select date
from w
where date between '2023-12-01' and '2023-12-07'),
master as (select '2G' as tech,
raw.date as datetime,
ref.branch,
ref.cluster as cluster,
sum(raw.tch_traffic_erlang) as traffic,
sum(raw.payload_mbyte) as payload_mbyte
from r11.meas_2g_daily raw
join network_cell net on raw.network_cell_id = net.id
join ref_site ref on net.site_id = ref.site_id
join datarange dt on raw.date = dt.date
group by raw.date, ref.branch, ref.cluster
union
select '4G' as tech,
raw.date as datetime,
ref.branch,
ref.cluster as cluster,
0.0 as traffic_voice,
sum(raw.payload_mbyte) as payload_mbyte
from r11.meas_4g_daily raw
join network_cell net on raw.network_cell_id = net.id
join ref_site ref on net.site_id = ref.site_id
join datarange dt on raw.date = dt.date
group by raw.date, ref.branch, ref.cluster
union
select '5G' as tech,
raw.date as datetime,
ref.branch,
ref.cluster as cluster,
0 as traffic_voice,
sum(payload) as payload_mbyte
from r11.meas_5g_daily raw
join network_cell net on raw.network_cell_id = net.id
join ref_site ref on net.site_id = ref.site_id
join datarange dt on raw.date = dt.date
group by raw.date, ref.branch, ref.cluster
union
select 'VOLTE' as tech,
raw.date as datetime,
ref.branch,
ref.cluster as cluster,
sum(volte_traffic_erl) as traffic_voice,
sum(dl_traffic_volume_mbyte) + sum(ul_traffic_volume_mbyte) as payload_mbyte
from r11.meas_4g_daily raw
join network_cell net on raw.network_cell_id = net.id
join ref_site ref on net.site_id = ref.site_id
join datarange dt on raw.date = dt.date
group by raw.date, ref.branch, ref.cluster),
master2 as (select master.datetime,
master.branch,
master.cluster,
sum(
case
when master.tech = '2G' then master.traffic
else 0
end) as traffic_2g,
sum(
case
when master.tech = 'VOLTE' then master.traffic
else 0
end) as traffic_volte,
sum(
case
when master.tech = '2G' then master.payload_mbyte
else 0
end) as payload_2g,
sum(
case
when master.tech = '4G' then master.payload_mbyte
else 0
end) as payload_4g,
sum(
case
when master.tech = '5G' then master.payload_mbyte
else 0
end) as payload_5g,
sum(
case
when master.tech = 'VOLTE' then master.payload_mbyte
else 0
end) as payload_volte
from master
group by master.datetime, master.branch, master.cluster),
final as (select to_week(raw.datetime) as year_week,
right(to_week(raw.datetime), 2)::integer as week,
to_char(raw.datetime::timestamp with time zone, 'YYYY') as year,
to_char(raw.datetime::timestamp with time zone, 'YYYY-MM') as yearmonth,
to_char(raw.datetime::timestamp with time zone, 'MM') as month,
to_char(raw.datetime::timestamp with time zone, 'DD-Mon') as date,
to_char(raw.datetime::timestamp with time zone, 'DD') as datefix,
raw.branch,
raw.cluster,
sum(raw.traffic_2g)::numeric(100, 2) as traffic_2g,
0 as traffic_3g,
sum(raw.traffic_volte)::numeric(100, 2) as traffic_volte,
sum(raw.payload_2g)::numeric(100, 2) as payload_2g,
0 as payload_3g,
sum(raw.payload_4g)::numeric(100, 2) as payload_4g,
sum(raw.payload_5g)::numeric(100, 2) as payload_5g,
sum(raw.payload_volte)::numeric(100, 2) as payload_volte,
(sum(raw.traffic_2g) + sum(raw.traffic_volte))::numeric(100, 2) as total_traffic_erl,
(sum(raw.payload_2g) + sum(raw.payload_4g) + sum(raw.payload_5g) + sum(raw.payload_volte))::numeric(100, 2) as total_payload_mb,
((sum(raw.traffic_2g) + sum(raw.traffic_volte)) / 1000000)::numeric(100, 2) as traffic_mio,
((sum(raw.payload_2g) + sum(raw.payload_4g) + sum(raw.payload_5g) + sum(raw.payload_volte)) / 1024 / 1024)::numeric(100, 2) as payload_tb
from master2 raw
group by raw.datetime, raw.branch, raw.cluster
order by raw.datetime, raw.branch, raw.cluster)
select *
from final
;