2017-06-15 59 views
1

我想從傳統的SQL遷移到標準SQL「包含」 BigQuery中的標準SQL

我曾在傳統的SQL下面的代碼

SELECT 
    hits.page.pageTitle 
FROM [mytable] 
WHERE hits.page.pageTitle contains '%' 

,我想這在標準SQL:

SELECT 
    hits.page.pageTitle 
FROM `mytable` 
WHERE STRPOS(hits.page.pageTitle, "%") 

但它給我這個錯誤:

Error: Cannot access field page on a value with type ARRAY> at [4:21]

回答

2

試試這個:

SELECT 
    hits.page.pageTitle 
FROM `table`, 
UNNEST(hits) hits 
WHERE REGEXP_CONTAINS(hits.page.pageTitle, r'%') 
LIMIT 1000 

在ga_sessions模式, 「命中」 是一個數組(即反覆模式)。您需要應用UNNEST操作才能在BigQuery中處理數組。

+0

Hi @Will謝謝。但它並沒有給我和Legacy一樣的結果。爲什麼這樣? – MFR

+0

與傳統結果有什麼不同?他們應該都是平等的。 –

+0

它只給我一行數據。 – MFR