BigQuery Standard SQL с использованием UNNEST дублирует данные - PullRequest
0 голосов
/ 21 мая 2018

Я использую стандартный sql Bigquery для подсчета данных аналитики Google, но когда я применяю 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

Может ли кто-нибудь помочь мне рассказать, как мы можем удалить дубликаты данных в этом запросе

1 Ответ

0 голосов
/ 21 мая 2018

Похоже, что вы хотите вычислить максимальный идентификатор транзакции в пределах hits для каждой строки, а затем взять максимум для всех строк.Это должно работать:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...