簡體   English   中英

SQL 在帶有分類變量的 BigQuery CASE WHEN 中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM