【问题标题】:BigQuery Standard SQL using UNNEST duplicates the dataBigQuery Standard SQL 使用 UNNEST 复制数据
【发布时间】:2018-05-21 13:38:49
【问题描述】:

我正在使用 Bigquery 标准 sql 来计算谷歌分析数据,但是当我应用 unnest 来打破表中的重复记录字段时,其他列(如命中计数数据)变得重复并显示比实际更多的值

SELECT
    date,
    trafficSource.source as source,
    trafficSource.medium as medium,
    SUM(totals.hits) AS total_hit,
    MAX(hits.transaction.transactionid) as transaction
FROM
    `test.test.session_streaming_*`,unnest(hits) hits
WHERE
    _table_suffix BETWEEN '20180401'
    AND '20180501'   
GROUP BY
    date,
    trafficSource.source,
    trafficSource.medium

谁能帮我告诉我们如何删除此查询中的重复数据

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    您似乎想计算hits 中每一行的最大事务 ID,然后在所有行中取最大值。这应该有效:

    SELECT
      date,
      trafficSource.source as source,
      trafficSource.medium as medium,
      SUM(totals.hits) AS total_hit,
      MAX((SELECT MAX(transaction.transactionid) FROM UNNEST(hits))) as transaction
    FROM
      `test.test.session_streaming_*`
    WHERE
      _table_suffix BETWEEN '20180401'
        AND '20180501'
    GROUP BY
      date,
      trafficSource.source,
      trafficSource.medium
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多