我正在处理包含广告系列和营销效果数据的原始adwords数据。我需要根据符合某个“WHERE”标准的列进行计算。举个例子;如果在“广告相关性”列中,行=“低于平均值”,则应将列返回为“低于平均广告相关性展示次数”,此次出现的计算应为展示次数* 1.我还需要进行其他计算例如,无论在何处,都会出现在每一行中;列“QS”*“印象”。我最后需要将两列连接在一起,这两列将依次与另一个数据集循环。
如果不创建视图,这是否可行?我尝试使用“Where”查询创建一个但是它似乎受限于我可以提取多少,因为它可以基于一个且只有一个条件。
当前表格
Campaign|Adgroup|Expected clickthrough rate|QS|Impressions|
--------+-------+--------------------------+--+-----------+
USA-EN |watches|Average |3 |1000 |
DE-DE |rings |Below Average |5 |1300 |
CH-DE |belts |Average |6 |1234 |
期望的结果(这些是额外的/计算的列,但目标是在新表中包括顶部的列)
Key |Impressions with average ctr |Weighted QS |
**(Campaign and |(Impressions *1 where "Expected |(QS * Impressions |
adgroup concatenated)|clickthroughrate =average) | |**
---------------------+--------------------------------+------------------+
USA-ENwatches |1000 | |
DE-DErings |0 | |
CH-DEbelts |1234 | |
答案 0 :(得分:1)
对于IF - THEN逻辑,用例语句。 对于字符串的连接,请使用" ||"
这是一个基于您的"当前表"的示例。和#34;期望的结果":
Select (Campaign || '-' || Adgroup) AS Key
,CASE [Expected clickthrought rate]
When 'Average' then (Impressions * 1)
Else 0
End AS [Impressions with average ctr]
,(QS * Impressions) AS [Weighted QS]
From MyTable