You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BigQuery中将重复记录UNNEST为单行多列的实现方案咨询

实现思路

不需要对people数组执行全量UNNEST触发行扩展,直接从数组内部按角色筛选对应元素,提取id生成独立列即可,避免生成冗余多行。

操作步骤
  1. 确认people数组内每个元素的角色标识字段(通常为type/role类字段,用于区分buyer、seller身份)
  2. 在SELECT子句中通过子查询嵌套UNNEST的方式,按角色筛选后提取对应id,不会触发外层行扩展
  3. 可通过LIMIT 1、安全取值逻辑兼容数组中缺少对应角色的场景,避免查询报错
示例查询

假设people数组元素的角色标识字段为role,对应取值为BUYER/SELLER,可参考如下代码实现:

SELECT
  eventTime,
  (SELECT id FROM UNNEST(people) WHERE role = 'BUYER' LIMIT 1) AS buyer_Id,
  (SELECT id FROM UNNEST(people) WHERE role = 'SELLER' LIMIT 1) AS seller_Id
FROM
 `public.table`
WHERE
verb = 'event'

你可以根据实际业务中的角色字段名、取值规则调整子查询中的过滤条件即可。

内容的提问来源于stack exchange,提问作者code-gijoe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 19:36:04