Ниже для BigQuery Standard SQL
#standardSQL
SELECT ANY_VALUE(a).*, AVG(value) avg_value
FROM `project.dataset.table_a` a
LEFT JOIN `project.dataset.table_b` b
USING(id)
GROUP BY a.id
Вы можете протестировать, поиграть с выше, используя фиктивные данные, как в примере ниже
#standardSQL
WITH `project.dataset.table_a` AS (
SELECT 1 id, 11 fa, 12 fb, 13 fc UNION ALL
SELECT 2, 21, 22, 23 UNION ALL
SELECT 3, 31, 32, 33
), `project.dataset.table_b` AS (
SELECT 1 id, 1 value UNION ALL
SELECT 1, 2 UNION ALL
SELECT 1, 3 UNION ALL
SELECT 2, 4 UNION ALL
SELECT 2, 5 UNION ALL
SELECT 2, 6 UNION ALL
SELECT 3, 7
)
SELECT ANY_VALUE(a).*, AVG(value) avg_value
FROM `project.dataset.table_a` a
LEFT JOIN `project.dataset.table_b` b
USING(id)
GROUP BY a.id
-- ORDER BY a.id
с результатом
Row id fa fb fc avg_value
1 1 11 12 13 2.0
2 2 21 22 23 5.0
3 3 31 32 33 7.0