繁体   English   中英

尝试使用BigQuery选择事件数据时出错

[英]Error when trying to select event data with BigQuery

我正在尝试在BigQuery中选择event_dim.date ,但由于错误而无法实际访问它

Error: Cannot access field date on a value with type ARRAY<STRUCT<date STRING, name STRING, params ARRAY<STRUCT<key STRING, value STRUCT<string_value STRING, int_value INT64, float_value FLOAT, ...>>>, ...>> at [1:18]

我的查询:

SELECT event_dim.date FROM `table`

我知道我做错了,任何帮助将不胜感激。 谢谢!

您是否要获取每一行的日期数组? 然后,您需要一个ARRAY子查询:

SELECT ARRAY(SELECT date FROM UNNEST(event_dim)) AS dates
FROM `table`;

如果试图将所有日期放在单独的行中,那么您想与数组交叉连接:

SELECT event.date
FROM `table`
CROSS JOIN UNNEST(event_dim) AS event;

要过滤特定日期:

SELECT event.date
FROM `table`
CROSS JOIN UNNEST(event_dim) AS event
WHERE event.date = '20170104';

或者,您可以将日期字符串解析为date类型,以便按年份或星期进行过滤,例如:

SELECT date
FROM (
  SELECT PARSE_DATE('%Y%m%d', event.date) AS date
  FROM `table`
  CROSS JOIN UNNEST(event_dim) AS event
)
WHERE EXTRACT(YEAR FROM date) = 2017;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM