[英]SQL in BigQuery CASE WHEN with categorical variables
我需要根据平台来源(PC、Web、移动)重新分配我的收入,因为我为这些平台中的任何一个支付了不同的税,以便在 Google BigQuery 中获得我的 .net 收入。 这是我的数据示例:
我试图根据平台源的值创建一个 CASE WHEN,但它不起作用。 output 只有零。
CASE WHEN ${platform_source} = 'Mobile' THEN ${revenue_raw} * 0.7
WHEN ${platform_source} = 'Web' THEN ${revenue_raw} * 0.88
WHEN ${platform_source} = 'Pc' THEN ${d1_iap_revenue_raw} * 0.88
ELSE NULL END
非常感谢!
字符串匹配区分大小写。
尝试这个
CASE WHEN ${platform_source} = 'Mobile' THEN ${revenue_raw} * 0.7
WHEN ${platform_source} = 'Web' THEN ${revenue_raw} * 0.88
WHEN ${platform_source} = 'PC' THEN ${d1_iap_revenue_raw} * 0.88
ELSE NULL END
如果所有条件都不匹配,正如@Mr.Batra 所提到的, Platform
列可能包含额外的空格。 如果字符串长度不是预期值,则必须处理该列。
要处理该列并删除任何尾随或前导空格,请使用TRIM
function。
CASE WHEN TRIM(${platform_source}) = 'Mobile' THEN ${revenue_raw} * 0.7
WHEN TRIM(${platform_source}) = 'Web' THEN ${revenue_raw} * 0.88
WHEN TRIM(${platform_source}) = 'PC' THEN ${d1_iap_revenue_raw} * 0.88
ELSE NULL END
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.