google bigquery - pricing - FLATTEN con TABLE_DATE_RANGE
google cloud (2)
Tengo un rango de tablas en un conjunto de datos y necesito consultarlas todas mientras FLATTEN en uno de los registros repetidos. Por ejemplo, una consulta como la siguiente funciona bien:
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)
Sin embargo, estoy teniendo problemas de FLATTENing al usar comodines de tabla. ¿Puede alguien ayudarme con la sintaxis? ¿Es posible usar FLATTEN con TABLE_DATE_RANGE?
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)
Gracias shayan
Prueba esto, funciona para mi ..
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)
Según el manual de referencia, la sintaxis de FLATTEN es:
...(FLATTEN ([project_name:]datasetId.tableId, flattenField))..
...(FLATTEN (subselect_clause, flattenField))..
En base a esto, intentaría poner una cláusula de subselección dentro de la declaración FLATTEN de la siguiente manera:
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)