我有一些来自Google Analytics(分析)的广告系列数据,希望通过SQL在Bigquery中使用。有两个维度列,广告系列和广告内容,以及一个指标,会话。 如果没有一些流量带来了错误的广告系列参数,那我就很简单了,而我最终得到了一个看起来不好的表格。我现在要做的是将会话“分组”到一个广告内容上,并在会话数最高的广告系列中进行分组。
我尝试了一些不同的选项来与TOP联接,但这总是与两个不同的表一起使用,我无法在这里使用它。
表
adcontent campaign sessions
adcontent_1 campaign_1 57
adcontent_1 wrong_campaign_1 1
adcontent_2 campaign_2 102
adcontent_2 wrong_campaign_1 3
结果表:
adcontent campaign sessions
adcontent_1 campaign_1 58
adcontent_2 campaign_2 105
答案 0 :(得分:0)
使用聚合
adcontent,min(campaign),sum(sessions) from table
group by adcontent
答案 1 :(得分:0)
您似乎想保留会话次数最多的广告系列名称。 BigQuery没有“第一”聚合功能,但是您可以使用:
select adcontent,
array_agg(campaign order by sessions desc limit 1)[safe_ordinal(1)] as leading_campaign
sum(sessions) as sessions
from t
group by adcontent;
下面是代码示例:
with t as (
SELECT 'adcontent_1' as adcontent, 'campaign_1' as campaign, 57 as sessions union all
SELECT 'adcontent_1', 'wrong_campaign_1', 1 union all
SELECT 'adcontent_2', 'campaign_2', 102 union all
SELECT 'adcontent_2', 'wrong_campaign_1', 3 UNION ALL
SELECT 'adcontent_3', 'campaign_3', 42 union all
SELECT 'adcontent_3', 'bad_campaign_3', 4
)
select adcontent,
array_agg(campaign order by sessions desc limit 1)[safe_ordinal(1)] as leading_campaign,
sum(sessions) as sessions
from t
group by adcontent;