Google bigquery 从简单结构数据类型中提取值

Google bigquery 从简单结构数据类型中提取值,google-bigquery,Google Bigquery,快速提问!我有一个带有小结构的表,需要从中提取值。结构的格式如下所示: { eventCategory: "foo", eventTask: "bar", eventName: "string" } Table schema: Column | Datatype ---------------- Date | DATE struct | STRUCT eventCategory == STRING

快速提问!我有一个带有小结构的表,需要从中提取值。结构的格式如下所示:

{
eventCategory: "foo",
eventTask: "bar",
eventName: "string"
}
Table schema:
Column | Datatype
----------------
Date   |  DATE
struct |  STRUCT
             eventCategory == STRING
             eventTask == STRING
             eventName == STRING
ID     |  STRING

  Date   |   ID   |  struct           |
---------------------------------------
20200727 | 112341 | {                 |
         |        |  eventCategory:...|
         |        |  eventTask:...    |
         |        |  eventName:...    |
         |        |  }                |
---------------------------------------
20200727 | 115632 | {                 |
         |        |  eventCategory:...|
         |        |  eventTask:...    |
         |        |  eventName:...    |
         |        |  }                |
---------------------------------------
20200727 | 115632 | {                 |
         |        |  eventCategory:...|
         |        |  eventTask:...    |
         |        |  eventName:...    |
         |        |  }                |
---------------------------------------
表架构如下所示:

{
eventCategory: "foo",
eventTask: "bar",
eventName: "string"
}
Table schema:
Column | Datatype
----------------
Date   |  DATE
struct |  STRUCT
             eventCategory == STRING
             eventTask == STRING
             eventName == STRING
ID     |  STRING

  Date   |   ID   |  struct           |
---------------------------------------
20200727 | 112341 | {                 |
         |        |  eventCategory:...|
         |        |  eventTask:...    |
         |        |  eventName:...    |
         |        |  }                |
---------------------------------------
20200727 | 115632 | {                 |
         |        |  eventCategory:...|
         |        |  eventTask:...    |
         |        |  eventName:...    |
         |        |  }                |
---------------------------------------
20200727 | 115632 | {                 |
         |        |  eventCategory:...|
         |        |  eventTask:...    |
         |        |  eventName:...    |
         |        |  }                |
---------------------------------------
该表的格式如下所示:

{
eventCategory: "foo",
eventTask: "bar",
eventName: "string"
}
Table schema:
Column | Datatype
----------------
Date   |  DATE
struct |  STRUCT
             eventCategory == STRING
             eventTask == STRING
             eventName == STRING
ID     |  STRING

  Date   |   ID   |  struct           |
---------------------------------------
20200727 | 112341 | {                 |
         |        |  eventCategory:...|
         |        |  eventTask:...    |
         |        |  eventName:...    |
         |        |  }                |
---------------------------------------
20200727 | 115632 | {                 |
         |        |  eventCategory:...|
         |        |  eventTask:...    |
         |        |  eventName:...    |
         |        |  }                |
---------------------------------------
20200727 | 115632 | {                 |
         |        |  eventCategory:...|
         |        |  eventTask:...    |
         |        |  eventName:...    |
         |        |  }                |
---------------------------------------
如何仅查询SELECT语句中的eventName值?寻找最终结果,如:

  Date   |   ID   |  struct           | eventName |
---------------------------------------------------
20200727 | 112341 | {                 | "ex. 1"
         |        |  eventCategory:...|
         |        |  eventTask:...    |
         |        |  eventName:"ex. 1"|
         |        |  }                |
---------------------------------------------------
20200727 | 115632 | {                 | "ex. 2"
         |        |  eventCategory:...|
         |        |  eventTask:...    |
         |        |  eventName:"ex. 2"|
         |        |  }                |
---------------------------------------------------
20200727 | 115632 | {                 | "ex. 3"
         |        |  eventCategory:...|
         |        |  eventTask:...    |
         |        |  eventName:"ex. 3"|
         |        |  }                |
---------------------------------------------------
结构中的所有值都是字符串

谢谢

SELECT *, 
  struct_column.eventName AS eventName
FROM `project.dataset.table`  

struct_column
替换为该列的任何真实名称

不清楚-能否提供更多详细信息-此字段的确切类型-提供表架构将有所帮助。同时展示您尝试了什么以及为什么它不适合您-这也可能有助于了解您的问题,这听起来是非常简单和基本的东西我想我添加了您想要的内容-但老实说,我从未使用过STRUCT数据类型,我甚至不知道从哪里开始。STRUCT字段中的所有值都是stringssorry。还不清楚那个字段到底是什么!它只是字符串数据类型的自由文本字段吗?或键/值的结构数组-不清楚!如果您显示itI给人的印象是它是一个结构——它不是一个自由文本字段,所以它只能是一个结构数组,那么表的模式可能会有所帮助?使用表模式更新问题,很可能会变得很清楚:o)这很简单!谢谢你指导我如何组织我的帖子,我以后肯定会这么做的=)