Google bigquery 使用表格\u日期\u范围展平

Google bigquery 使用表格\u日期\u范围展平,google-bigquery,Google Bigquery,我在一个数据集中有一系列表,需要查询所有表,同时展平其中一条重复记录。例如,类似以下的查询可以正常工作: SELECT date, customDimensions.value AS customDimension, hits.page.pagePath AS pagePath FROM (FLATTEN( [<projectId>:<datasetId>.ga_sessions_20130910] , customDimensions))

我在一个数据集中有一系列表,需要查询所有表,同时展平其中一条重复记录。例如,类似以下的查询可以正常工作:

 SELECT
   date,
   customDimensions.value AS customDimension,
   hits.page.pagePath AS pagePath
FROM
   (FLATTEN( [<projectId>:<datasetId>.ga_sessions_20130910] ,
   customDimensions)) 
WHERE
   hits.page.pagePath CONTAINS '/helmets' 
   AND customDimensions.index IN (1,2,3)
但是,我在使用表通配符时遇到了展平问题。有人能帮我解释一下语法吗?是否可以将“展平”与表格\u日期\u范围一起使用

SELECT
   date,
   customDimensions.value AS customDimension,
   hits.page.pagePath AS pagePath
FROM
   (FLATTEN (TABLE_DATE_RANGE ([<project>:<dataset>.ga_sessions_],
   TIMESTAMP('2013-09-10'),
   TIMESTAMP ('2014-06-10'))),
   customDimensions) 
WHERE
   hits.page.pagePath CONTAINS '/helmets' 
   AND customDimensions.index IN (1,2,3)
谢谢,
Shayan

根据参考手册,扁平化语法为:

...(FLATTEN ([project_name:]datasetId.tableId, flattenField))..
...(FLATTEN (subselect_clause, flattenField))..
基于此,我将尝试在flatte语句中放入subselect子句,如下所示:

SELECT
date,
customDimensions.value AS customDimension,
hits.page.pagePath AS pagePath
FROM
FLATTEN(
(SELECT date, customDimensions, hits FROM TABLE_DATE_RANGE ([<project>:<dataset>.ga_sessions_],
TIMESTAMP('2013-09-10'),TIMESTAMP ('2014-06-10')))
, customDimensions)
WHERE
hits.page.pagePath CONTAINS '/helmets' 
AND customDimensions.index IN (1,2,3)

试试这个,它对我有用

SELECT
   date,
   customDimensions.value AS customDimension,
   hits.page.pagePath AS pagePath
FROM
   (FLATTEN (SELECT * FROM TABLE_DATE_RANGE ([<project>:<dataset>.ga_sessions_],
   TIMESTAMP('2013-09-10'),
   TIMESTAMP ('2014-06-10'))),
   customDimensions) 
WHERE
   hits.page.pagePath CONTAINS '/helmets' 
   AND customDimensions.index IN (1,2,3)

谢谢已经探索过这个选项,但希望Flatte使用表\u DATE\u RANGE进行更清晰的查询。我想目前还不可能。我会申请一个功能请求。我同意-那太好了+1关于功能请求-这个解决方案行不通。我收到了这个错误消息:错误:未找到字段“customDimensions”。您可以在此功能请求中添加一个字段:答案可能是使用标准SQL。我回到legacy,因为它有一些标准尚未具备的功能。然而,我发现这些都很简单,可以用用户定义的函数实现:感谢您提供的这个代码片段,它可能会提供一些有限的、即时的帮助。A通过展示为什么这是一个很好的解决问题的方法,并将使它对未来有其他类似问题的读者更有用。请在您的回答中添加一些解释,包括您所做的假设。