BigQuery - CASE WHEN x IN(来自其他表的字段),导致 Semijoin 错误

巴尔干

我试图通过他们之前是否曾经从我们这里购买过网站访问者来细分网站访问者。当我在 SELECT 语句中放入以下字段时,出现以下错误:

CASE WHEN fullVisitorId IN (SELECT fullVisitorId FROM [xxxx-0000:36363.unique_FullVisitorIds_of_past_purchasers_table]) THEN "Purchased"
ELSE "Never Purchased" END AS Previous_Purchase

错误:“错误:(L10:20):半连接表达式(即“x IN (SELECT ...)”)仅在 WHERE 或 HAVING 子句中受支持。”

我该怎么做呢?

谢谢

保罗麦克斯韦

我建议按照以下方式加入汇总结果:

SELECT 
    CASE WHEN p.has_purchased = 1 THEN "Purchased"
         ELSE "Never Purchased" 
    END AS Previous_Purchase
FROM existing_from_table f
LEFT JOIN (
    SELECT fullVisitorId, 1 has_purchased
    FROM [xxxx-0000:36363.unique_FullVisitorIds_of_past_purchasers_table]
    GROUP BY fullVisitorId
    ) p on f.fullVisitorId = p.fullVisitorId

nb:使用 group by 以便不影响总行数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

BigQuery 中的 CASE WHEN 案例比较同一字段中的值

Laravel Rate Limiting 会记住来自其他节流路由的 X-Ratelimit-Remaining - 导致错误的请求过多

来自MySQL external_query的BigQuery内部错误,聚合了一个返回日期时间的case表达式

Bigquery“非叶字段”错误

Bigquery SQL SELECT WHERE字段包含来自其他表的许多单词

CASE WHEN THEN 其他表中的最小值

BigQuery SQL,CASE WHEN/IF 关于代码编辑的问题。轻松级别

在case_when()中抛出错误

BigQuery传输服务:哪个文件导致错误?

错误:访问被拒绝:BigQuery BigQuery:表的权限被拒绝:

在ORDER BY中使用CASE WHEN的SQL语句导致类型转换错误

R:case_when 和过滤器组合导致未定义的列选择错误

SQL 中的 CASE WHEN 语句错误:列名或提供的值的数量与表定义不匹配

SQL 中的 CASE WHEN 语句错误:列名或提供的值的数量与表定义不匹配

来自后端的 X 错误

分析模式x * y中的错误(case语句)

我的SQL查询:错误:在WHERE子句中使用CASE WHEN时,字段列表中的未知列

仅当使用CASE WHEN时,SQL查询返回错误

mutate和case_when分配错误的值

在WHEN子句中使用>时,CASE语法错误

mutate和case_when:错误的数字和不适用

带有dplyr:case_when()的RHS中的评估错误

嵌套“ sum(case when)”语句中的语法错误

Mysql 8 CASE..WHEN..THEN..END引发语法错误

使用 case_when 时如何解决此错误?

Alter表中的Case语句错误

在“ CASE WHEN”更新时,其他列变为空

BigQuery:使用 ARRAY_CONCAT() 查询会导致错误

BigQuery预览:来自服务器的未知错误响应