Ниже для BigQuery Standard SQL
#standardSQL
SELECT code, UR, gen, Occ, MT, SUM(pct) AS pct
FROM (
SELECT * REPLACE(IF(collapse, 'S1', Occ) AS Occ, IF(collapse, 'English', MT) AS MT)
FROM (
SELECT *,
COUNTIF(Occ = 'S1' AND MT = 'English') OVER(PARTITION BY code, UR, gen) > 0 AS collapse
FROM `project.dataset.table`
)
)
GROUP BY code, UR, gen, Occ, MT
если применить к образцу данных из вашего вопроса - результат будет
Row code UR gen Occ MT pct
1 128 Rural F D2 Ao 0.77
2 128 Rural F D3 Ao 0.38
3 128 Rural M D4 Ao 0.89
4 128 Rural M D5 Ao 0.02
5 128 Urban F S1 English 0.63
6 128 Urban M S1 English 0.63