gpt4 book ai didi

sql - 您如何计算 BigQuery 中列的 bool 聚合?

转载 作者:行者123 更新时间:2023-12-03 18:42:20 25 4
gpt4 key购买 nike

我有一个用户事件表,我想将这些事件投影到
带有一些谓词的新列,然后将每个用户的事件聚合在一起
进入一个新的投影,告诉我用户是否曾经有过谓词匹配
对他们来说,或者如果他们从来没有匹配过,等等。

在其他语言中,这通常称为 all()any() ,您可以在其中传递
它是一个 bool 值列表,它会告诉你它们是否都匹配,或者是否在
至少一场比赛。它相当于在所有 bool 值上使用 bool 值 AND值(例如在 all 的情况下)或在所有 bool 值上使用 bool 值 OR值(如 any )。

BigQuery 有这个功能吗?我可以使用 maxmin 但它并不理想。

例子:

select
month(date_time) m,
count(*) as ct,
max(id_is_present),
min(id_is_present),
max(starts_with_one) max_one,
min(starts_with_one) min_one,
from
(
select
length(user_id) > 1 id_is_present,
regexp_match(user_id, r'^1') starts_with_one,
date_time
from
[user_events.2015_02]
)
group by
m

它利用 max(true, false, false) 产生 true 的行为,因此您可以通过搜索列中的值然后从那里构建来实现 anyall

这是我必须依赖的技巧还是 BigQuery 支持 bool 聚合?

最佳答案

是的,BigQuery 有这样的聚合函数,它为它们使用 SQL 标准名称:

EVERY (will do logical and)
SOME (will do logical or)

关于sql - 您如何计算 BigQuery 中列的 bool 聚合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28438431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com