0

我正在连接到 BigQuery 以获取 Tableau 中 Sankey 图表的信息。但是,我从 2 个不同的数据集中获取此信息:“观众退出”和“观众进入”。我正在使用用户 ID 和原始时间戳来加入 2 个数据集。但是,时间戳采用日期时间格式,并且考虑到用户可以在凌晨 2 点退出受众并仅在凌晨 4 点进入新受众,因此这些时间在数据集之间并不一致。因此,我使用“FORMAT_DATETIME”删除原始时间戳上的时间,即:从“2021/07/07 23:32”到“2021-Jul-7”,如下面的SQL代码所示:

SELECT `audience_exited`.`active_customers` AS `active_customers`,
  `audience_exited`.`audience_key` AS `audience_key`,
  FORMAT_DATETIME("%Y-%b-%d",auience_exited`.`original_timestamp`) AS `original_timestamp`,
  `audience_exited`.`received_at` AS `received_at`,
  `audience_exited`.`user_id` AS `user_id`,
  `audience_entered`.`active_customers` AS `active_customers__audience_entered_`,
  `audience_entered`.`audience_key` AS `audience_key__audience_entered_`,
  FORMAT_DATETIME("%Y-%b-%d",`audience_entered`.`original_timestamp`) AS `original_timestamp__audience_entered_`,
  `audience_entered`.`received_at` AS `received_at__audience_entered_`,
  `audience_entered`.`user_id` AS `user_id__audience_entered_`,
  "audience_key" AS Vizside
FROM `dial-a-delivery-ke.personas_personas_prod`.`audience_exited` `audience_exited`
  FULL JOIN `dial-a-delivery-ke.personas_personas_prod`.`audience_entered` `audience_entered` ON ((`audience_exited`.`user_id` = `audience_entered`.`user_id`) AND (`audience_exited`.`original_timestamp` = `audience_entered`.`original_timestamp`))

在 Tableau 中运行它时出现以下错误:

与数据源通信时出错

错误代码:015CFBE6 Google BigQuery 服务无法编译查询。语法错误:应为“)”但.在 [5:46]获得标识符

而且我不知道该怎么做,因为对我来说一切都很好。请问你能帮助解决这个错误吗?

4

1 回答 1

0

TRY BELOW CODE

SELECT `audience_exited`.`active_customers` AS `active_customers`,
  `audience_exited`.`audience_key` AS `audience_key`,
  FORMAT_DATETIME("%Y-%b-%d",`auience_exited`.`original_timestamp`) AS `original_timestamp`,
  `audience_exited`.`received_at` AS `received_at`,
  `audience_exited`.`user_id` AS `user_id`,
  `audience_entered`.`active_customers` AS `active_customers__audience_entered_`,
  `audience_entered`.`audience_key` AS `audience_key__audience_entered_`,
  FORMAT_DATETIME("%Y-%b-%d",`audience_entered`.`original_timestamp`) AS `original_timestamp__audience_entered_`,
  `audience_entered`.`received_at` AS `received_at__audience_entered_`,
  `audience_entered`.`user_id` AS `user_id__audience_entered_`,
  "audience_key" AS Vizside
FROM `dial-a-delivery-ke.personas_personas_prod`.`audience_exited` `audience_exited`
  FULL JOIN `dial-a-delivery-ke.personas_personas_prod`.`audience_entered` `audience_entered` ON ((`audience_exited`.`user_id` = `audience_entered`.`user_id`) AND (`audience_exited`.`original_timestamp` = `audience_entered`.`original_timestamp`))
于 2021-07-29T16:00:25.170 回答