Ниже для BigQuery Standard SQL
#standardSQL
SELECT player_key, country,
STRING_AGG(CAST(biggest_win AS STRING), '#') biggest_win,
STRING_AGG(CAST(multiplier AS STRING), '#') multiplier,
date
FROM `project.dataset.player`
GROUP BY player_key, country, date
с выводом
Row player_key country biggest_win multiplier date
1 1083987121 USD 490.2#256#210 163.4#128#70 2020-03-17
Примечание: на основе вашего I'm expecting after merge
примера - я предполагаю, что вы хотите получить результат в комбинации - игрок, страна и дата
Мне было интересно, хочу ли я напечатать все строки
, если вы хотите по-прежнему выводить все строки (не вижу большого значения в нем - но, как вы и просили) - используйте ниже
#standardSQL
SELECT player_key, country,
STRING_AGG(CAST(biggest_win AS STRING), '#') OVER(PARTITION BY player_key, country, date) biggest_win,
STRING_AGG(CAST(multiplier AS STRING), '#') OVER(PARTITION BY player_key, country, date) multiplier,
date
FROM `project.dataset.player`
, в этом случае соответствующий вывод будет
Row player_key country biggest_win multiplier date
1 1083987121 USD 490.2#256#210 163.4#128#70 2020-03-17
2 1083987121 USD 490.2#256#210 163.4#128#70 2020-03-17
3 1083987121 USD 490.2#256#210 163.4#128#70 2020-03-17
Чтобы объединить эти два новых столбца в один - используйте ниже
#standardSQL
SELECT player_key, country,
CONCAT(
STRING_AGG(CAST(biggest_win AS STRING), '#') OVER(PARTITION BY player_key, country, DATE), ' ',
STRING_AGG(CAST(multiplier AS STRING), '#') OVER(PARTITION BY player_key, country, DATE)
) combined_column,
DATE
FROM `project.dataset.player`
с выходом
Row player_key country combined_column date
1 1083987121 USD 490.2#256#210 163.4#128#70 2020-03-17
2 1083987121 USD 490.2#256#210 163.4#128#70 2020-03-17
3 1083987121 USD 490.2#256#210 163.4#128#70 2020-03-17