Sql 加上一句「;“计算字段”;在bigquery中
我在bigquery中有一个原始表,我想根据给定的值添加一个“条件”/“计算”列,如下所示:Sql 加上一句「;“计算字段”;在bigquery中,sql,google-bigquery,Sql,Google Bigquery,我在bigquery中有一个原始表,我想根据给定的值添加一个“条件”/“计算”列,如下所示: CASE WHEN `columnA`="valueX" THEN `columnB` ELSE NULL AS `valueX` 问题是我不能只说SELECT*,CASE…,因为那时我必须对所有列执行groupby。 有没有一种简单的方法可以创建这样的“计算”列?也许使用一些UDF和视图“技巧” 输入示例: 输出示例: 提前感谢, Shushu请提供示例数据和所需结果。添加示例,谢谢。很好
CASE
WHEN `columnA`="valueX" THEN `columnB`
ELSE NULL
AS `valueX`
问题是我不能只说SELECT*,CASE…
,因为那时我必须对所有列执行groupby
。有没有一种简单的方法可以创建这样的“计算”列?也许使用一些UDF和视图“技巧” 输入示例: 输出示例:
提前感谢,
Shushu请提供示例数据和所需结果。添加示例,谢谢。很好,它很有效。。。太奇怪了,因为正如你在问题中看到的,这就是我尝试过的(至少我认为我尝试过的),并且得到了一个错误,说我必须
GROUP BY
所有字段…查看更多详细信息-我想你错过了END
来结束案例
谢谢。不,不是。我发现,当我在问题中编写CASE
选项时,在检查时我使用了:MAX(如果(`feature_2_name`='test4',`feature_2_value`,NULL))作为`test4`
,然后给出了一个错误:“星型扩展表达式引用了既未分组也未聚合的列事件名称”,这是合理的,因为MAX是聚合,它改变了整个选择。又是10倍。
SELECT *,
CASE
WHEN columnA='valueX' THEN columnB
ELSE NULL
END AS valueX
FROM