我有一个表,其中多行具有相同的数据,除了一列在所有重复行中具有唯一值。
示例:
userid, article_count, test_count, total_articles,total_tests,exam_id, exam_score
- 00016320-452b-11e6-9a4a-252aad95e99b,38,1,106,88,e9c196a1-4ae6-11e5-bc68-8620ffdeb79c,1
- 00016320-452b-11e6-9a4a-252aad95e99b,38,1,106,88,8223ff18-d538-11e5-80ff-b0086ec8f4cd,1
- 00016320-452b-11e6-9a4a-252aad95e99b,38,1,106,88,be2ac525-3909-11e6-a224-56a308185daf,1
我希望每个用户在表格中有一行,并将exam_id,exam_score视为BigQuery中的键/值对或记录。 我将考试视为具有两个子字段的记录:exam.exam_id和exam.score。
输出如下:
userid, article_count, test_count, total_articles,total_tests,exam.exam_id, exam.score
- 00016320-452b-11e6-9a4a-252aad95e99b,38,1,106,88,e9c196a1-4ae6-11e5-bc68-8620ffdeb79c,1
8223ff18-d538-11e5-80ff-b0086ec8f4cd,1
be2ac525-3909-11e6-a224-56a308185daf,1
如何将表格转换为提供的结构?
答案 0 :(得分:3)
如何将array_agg()
与结构一起使用?
select userid, article_count, test_count, total_articles, total_tests,
array_agg(struct(exam_id as 'exam_id', exam_score as 'exam_score')) as exams
from t
group by userid, article_count, test_count, total_articles, total_tests