首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在BigQuery中用条件划分计数(字符串)

在BigQuery中用条件划分计数(字符串)
EN

Stack Overflow用户
提问于 2021-02-16 10:26:59
回答 2查看 283关注 0票数 0

我对SQL和Google BigQuery非常陌生,所以如果这是一个非常愚蠢的问题,请原谅我。我有一个表,其中一个字符串列名为" status“,并且有不同类型的条目--打开、单击、发送等等。我希望将状态被”单击“的次数除以状态被”打开“的次数。我试着做这样的事:

campaign中选择COUNT(campaign),其中properties.status =“单击”/从campaign选择计数( properties.status ),其中properties.status=“打开”

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-16 10:39:54

使用case表达式进行条件聚合。

代码语言:javascript
代码运行次数:0
运行
复制
SELECT SUM(case when properties.status = "clicked" then 1 else 0 end) /
       SUM(case when properties.status = "opened" then 1 else 0 end)
FROM campaign
票数 1
EN

Stack Overflow用户

发布于 2021-02-16 11:55:29

在BigQuery中,您可以使用COUNTIF()

代码语言:javascript
代码运行次数:0
运行
复制
SELECT COUNTIF(properties.status = 'clicked') / COUNTIF(properties.status = 'opened')
FROM campaign c;

如果要处理除以零(因此它返回NULL而不是错误),请使用NULLIF()SAFE_DIVIDE()

代码语言:javascript
代码运行次数:0
运行
复制
SELECT COUNTIF(properties.status = 'clicked') / NULLIF(COUNTIF(properties.status = 'opened'), 0)
FROM campaign c;

或者:

代码语言:javascript
代码运行次数:0
运行
复制
SELECT SAFE_DIVIDE(COUNTIF(properties.status = 'clicked'),
                   COUNTIF(properties.status = 'opened')
                  )
FROM campaign c;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66222625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档