我正在使用原始的adwords数据,其中包含活动和营销绩效数据。我需要根据符合某个"WHERE“标准的列进行计算。例如,如果在“广告相关性”列下,行=“低于平均值”,则应将列返回为“低于平均广告相关性印象”。此事件的计算结果应为“印象* 1”。例如,我还需要在每一行中进行其他计算,而不考虑where标准;列"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 | |发布于 2017-07-05 07:38:18
对于IF - THEN逻辑,使用case语句。要连接字符串,请使用"||“
这是一个基于你的“当前表”和“期望结果”的例子:
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 MyTablehttps://stackoverflow.com/questions/44914262
复制相似问题