我应该如何在不破坏嵌套的情况下过滤 RECORD 中的列?
Posted
技术标签:
【中文标题】我应该如何在不破坏嵌套的情况下过滤 RECORD 中的列?【英文标题】:How should I filter columns in RECORD without breaking nest? 【发布时间】:2018-09-12 01:18:30 【问题描述】:我使用 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`
,但category
和is_limited_ad_tracking
列变得未嵌套。
category STRING NULLABLE
is_limited_ad_tracking STRING NULLABLE
如何在不破坏嵌套的情况下过滤列?
【问题讨论】:
【参考方案1】:以下是 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`
【讨论】:
谢谢。我得到了我需要的东西!以上是关于我应该如何在不破坏嵌套的情况下过滤 RECORD 中的列?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不使用 Group By / 有函数的情况下过滤 SQL 中的数据