【问题标题】:GROUP BY a value that is not part of the query's filterGROUP BY 一个不属于查询过滤器的值
【发布时间】:2021-12-10 23:38:24
【问题描述】:

我有一张表格,其中包含来自电子邮件营销活动的信息。在那个表上(你可以看到架构here)我有几个不同的列关于收到这个活动的用户。此表中最重要的列之一是 properties.status,因为我可以在其中获取有关用户与我们的广告系列互动的信息。

因此,例如,如果电子邮件已发送给用户,则会在该表上创建一行,并且“properties.status”列的值为“enqueued”。如果用户打开电子邮件,则会创建另一行,但现在的值是“opened”。如果他们点击,properties.status 的值为“点击”等。

我正在尝试生成一个查询,该查询将输出打开并点击我们发送的每个广告系列的总人数。

如您所见here,我确实设法调整了“已打开”和“已单击”。但现在我有了新的挑战。

我想按发送电子邮件的月份对所有内容进行分组,所以基本上有一个输出:

Month* Campaign_Name Subject Opened Clicked
  • 月份是(MONTH FROM timestamp AT TIME ZONE "UTC")

我面临的挑战是我想在发送活动.status 时对时间戳列进行分组,但“打开”和“点击”是 properties.status 的其他值。

我尝试过:

WITH
  ORCTOR AS (
  SELECT
    *
  FROM (
    SELECT
      internal_customer_id,
      properties.campaign_name,
      properties.Subject,
      properties.Status
    FROM
      `project-id.exp_1ddb4cbe_fc04_11ea_9874_06183dd6fcf3_views.campaign` ) PIVOT (COUNT(DISTINCT internal_customer_id ) FOR Status IN ('opened',
        'clicked')))
SELECT
  CONCAT( EXTRACT (MONTH
    FROM
      timestamp AT TIME ZONE "UTC"), "/", EXTRACT (YEAR
    FROM
      timestamp AT TIME ZONE "UTC") ) AS Sent,
  properties.campaign_name, opened, clicked
FROM
  `project-id.exp_1ddb4cbe_fc04_11ea_9874_06183dd6fcf3_views.campaign`
WHERE
  properties.status = "enqueued"

但后来我得到: 无法识别的名称:在 [20:29] 打开

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    下面试试

    select * from (
      select UserID, 
        extract(month from timestamp) as Month,
        properties.CampaignName, 
        properties.Subject, 
        properties.Status 
      from your_table
    )
    pivot (count(distinct UserID) for Status in ('opened', 'clicked'))  
    

    【讨论】:

    • 查询运行没有错误,但没有返回:imgur.com/8KS1erK
    • 很难说没有任何可靠的数据示例。您不需要使用表的整个真实架构 - 只需使用重要的字段/列 - 创建一些虚拟样本,以便我们可以进一步解决您的问题:o)
    • 顺便说一句,如果您仔细查看您提供的屏幕截图 - 您会看到您有 1322 行!!!!!!
    • 亲爱的米哈伊尔,你是对的!几天后,我再次尝试,它工作得很好......行数相同,但这次我实际上可以看到输出。猜猜这是 BQ 上的临时错误?无论如何谢谢:)
    猜你喜欢
    • 1970-01-01
    • 2013-07-14
    • 1970-01-01
    • 1970-01-01
    • 2021-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-24
    相关资源
    最近更新 更多