“包含” BigQuery中的标准SQL

“包含” BigQuery中的标准SQL

问题描述:

我想从传统的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]

试试这个:

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