【发布时间】:2021-08-04 23:32:13
【问题描述】:
我有一些可能有或没有字符串值的行数据,我想根据字符串是否存在来添加另一个具有 1 或 0 的列。这是大型分组/聚合查询的一部分,所以想知道如何最好地做到这一点?
基本上如果是python:
if row.get('intent_detail'):
row['intent_detail_flag'] = 1
else:
row['intent_detail_flag'] = 0
return row
我打算试试CASE - 这是最好的方法吗?
CASE
WHEN (max(intent_detail) IS NOT NULL)
THEN 1 ELSE 0
END as intent_detail_flag,
【问题讨论】:
-
你的方法很好,但是你可以去掉
case,只返回一个布尔值。 -
是的,我想知道是否还有其他带有 IF 的方法。我想要整数,这样我以后可以做平均值等。
-
。 .布尔值也非常灵活。我会推荐
case而不是if,因为case更灵活,而且它是标准SQL。
标签: sql google-bigquery case