我应该如何在不破坏嵌套的情况下过滤 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`,但categoryis_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 中的列?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用 Perl 循环的情况下过滤数组?

如何在不使用 Group By / 有函数的情况下过滤 SQL 中的数据

在不使用保护子句的情况下过滤 erlang ets 表

如何在没有 Shiny 的情况下过滤 Rmarkdown 中的预聚合数据?

在 Explorer 下过滤 AWS 资源

在 WPF 中,您可以在没有代码的情况下过滤 CollectionViewSource 吗?