大查询 - ANY_VALUE 返回 Null

Big Query - ANY_VALUE returning Null

我正在尝试在 BQ 中使用“any_value”函数,但它让我返回 NULL。

下面是我的问题的案例。 需要注意的是,它在 tid 字段中有效,但在 seller(我真正需要的)

中无效

我不知道为什么会这样。

select 
  *
  , any_value(seller) over (partition by gid) as other_seller
  , any_value(tid) over (partition by gid) as other_tid

FROM `my_Table`

I have no idea why it is happening.

ANY_VALUE 的行为就像指定了 RESPECT NULLS 一样;表达式为 NULL 的行被考虑并可能被选中。

然后考虑以下选项

select 
  *
  , max(seller) over (partition by gid) as other_seller
  , max(tid) over (partition by gid) as other_tid

FROM `my_Table`             

如果您想随机化输出 - 请尝试以下

select 
  *
  , first_value(seller) over (partition by gid order by if(seller is null, 1, rand())) as other_seller
  , first_value(tid) over (partition by gid order by if(tid is null, 1, rand())) as other_tid

FROM `my_Table`