BigQuery中能否在GROUP BY时限制聚合数组的行数?
在BigQuery中限制ARRAY_AGG聚合数组的行数
当然可以实现,BigQuery的ARRAY_AGG函数支持直接通过LIMIT子句限制聚合后数组的元素数量,还能结合ORDER BY指定筛选逻辑(比如按年份排序取前5条),确保结果符合预期。
示例查询
假设你的表包含id和year字段,按id分组后每个分组只保留最多5个year值,可使用以下语句:
SELECT id, ARRAY_AGG(year ORDER BY year LIMIT 5) AS grouped_year FROM yourtable GROUP BY id
关键说明
ORDER BY year是可选但推荐的配置,能明确指定取数规则(比如按年份升序/降序筛选),避免结果的随机性;- 如果某个分组的记录数不足5条,数组会保留该分组的所有现有元素,不会填充空值或默认值。
内容的提问来源于stack exchange,提问作者naveen
相关产品推荐
相关产品推荐

