[英]BigQuery to split the all the metrics into n equal parts depending on the number of times a certain string value appears in a column
嘗試使用regexp_extract_all
function,如下所示:
with sample_data as (
SELECT 'camp1' as camp, '01/08/2022' as date, 'job#12' as job, 23 as a1, 34 as a2, 21 as a3 UNION ALL
SELECT 'camp2', '01/08/2022', 'job#14 & job#15', 20, 30, 30 UNION ALL
SELECT 'camp3', '01/08/2022', 'job#11 job#13 job#20', 21, 30, 21 union all
select 'camp4', '01/08/2022', 'job#21 & job#22 & job#23 & job#24', 40, 12, 8
)
SELECT camp,
date,
job_ex,
a1,
a2,
a3,
a1/ count(job_ex) OVER (PARTITION BY camp) a1_split,
a2/ count(job_ex) OVER (PARTITION BY camp) a2_split,
a3/ count(job_ex) OVER (PARTITION BY camp) a3_split,
FROM sample_data,
UNNEST(regexp_extract_all(job, r'job\#\d+')) as job_ex
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.