大查询 - 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`
我正在尝试在 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`