繁体   English   中英

在bigquery中的同一列上应用不同的条件

[英]Applying different condition on the same column in bigquery

我有一个输入表。 我需要根据一些条件获得 output。

  1. 如果 Type ="Deposit" 那么 Output = Value
  2. 如果 Type ="Card" 和 Condition in("approved","approved:conditionally") 那么 Output = Value,如果 Type ="Card" 和 Condition ="referred" 那么 Output = 0.4*Value。

在此处输入图像描述

您可以使用case表达式:

CASE 
WHEN type = 'Deposit' THEN value
WHEN type = 'Card' AND condition IN ('approved', 'approved:conditionally') THEN value
WHEN type = 'Card' AND condition IN ('referred') THEN value * 0.4
END

以下是 BigQuery 标准 SQL

根据您的示例数据,唯一在 output 中更改值的情况是If Type ="Card" and Condition = "referred" ,因此您可以将逻辑简化为以下

CASE 
  WHEN (type, condition) = ('Card', 'referred') THEN value * 0.4
  ELSE value
END output 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM