如何在不破坏嵌套的情况下在RECORD中过滤列?

时间:2018-09-12 01:18:31

标签: firebase google-bigquery firebase-analytics

我使用BigQuery从Firebase接收分析数据,现在我想过滤一些列。

这是一种数据方案(简化)。

device                           RECORD   NULLABLE
  device.category                STRING   NULLABLE
  device.vendor_id               STRING   NULLABLE
  device.is_limited_ad_tracking  STRING   NULLABLE

我不需要vendor_id列,但是我想像这样保留device嵌套:

device                           RECORD   NULLABLE
  device.category                STRING   NULLABLE
  device.is_limited_ad_tracking  STRING   NULLABLE

起初,我写了SELECT device.category, device.is_limited_ad_tracking FROM `my_table`,但是categoryis_limited_ad_tracking列变成了未嵌套的。

  category                STRING   NULLABLE
  is_limited_ad_tracking  STRING   NULLABLE

如何在不破坏嵌套的情况下过滤列?

1 个答案:

答案 0 :(得分:3)

以下是用于BigQuery标准SQL

#standardSQL
SELECT STRUCT(device.category, device.is_limited_ad_tracking) device
FROM `project.dataset.table`    

您可以在下面进行烟熏测试

#standardSQL
WITH `project.dataset.table` AS (
  SELECT STRUCT<category STRING, vendor_id STRING, is_limited_ad_tracking STRING>('c1', 'id1', 'is1') device
)
SELECT STRUCT(device.category, device.is_limited_ad_tracking) device
FROM `project.dataset.table`