2014-06-12 6 views
17

Mam zakres tabel w zbiorze danych i muszę zapytać o wszystkie z nich podczas FLATTENING jednego z powtarzających się rekordów. Na przykład, zapytanie jak poniżej działa dobrze:FLATTEN z TABLE_DATE_RANGE

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) 

Jednak mam problemy podczas używania symboli wieloznacznych spłaszczenie tabeli. Czy ktoś może mi pomóc ze składnią? Czy można używać FLATTEN z 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) 

Dzięki Shayan

Odpowiedz

15

Według podręcznika, składnia spłaszczyć jest:

...(FLATTEN ([project_name:]datasetId.tableId, flattenField)).. 
...(FLATTEN (subselect_clause, flattenField)).. 

Na tej podstawie, chciałbym spróbować umieścić klauzulę podselekcji w oświadczeniu spłaszczyć tak:

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) 
+2

Dzięki! Zbadaliśmy już tę opcję, ale mieliśmy nadzieję, że FLATTEN pracował z TABLE_DATE_RANGE dla czystszych zapytań. Przypuszczam, że nie jest to możliwe jak dotąd. Złożę wniosek o funkcję. –

+0

Zgadzam się - to byłoby miłe. +1 na żądanie funkcji ;-) –

+2

Rozwiązanie nie działa. Pojawił się następujący komunikat o błędzie: Błąd: Nie znaleziono pola "customDimensions". –

0

Spróbuj tego, działa dla mnie ..

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) 
+0

Dziękuję za ten fragment kodu , co może zapewnić pewną ograniczoną, natychmiastową pomoc. [Poprawne wyjaśnienie znacznie poprawiłoby jego długoterminową wartość] (// meta.stackexchange.com/q/114762/350567), pokazując * dlaczego * jest to dobre rozwiązanie problemu i sprawiłoby, że byłby on bardziej przydatny w przyszłości czytelnicy z innymi, podobnymi pytaniami. Proszę [edytuj] swoją odpowiedź, aby dodać wyjaśnienia, w tym założenia, które podjąłeś. – iBug

Powiązane problemy