"含有"在Bigquery标准SQL中

时间:2017-06-15 04:15:01

标签: sql google-bigquery

我希望从旧版SQL迁移到标准SQL

我在Legacy SQL中有以下代码

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

我在标准SQL中试过这个:

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

但它给了我这个错误:

  

错误:无法访问具有类型的值的字段页面   ARRAY>在[4:21]

1 个答案:

答案 0 :(得分:7)

试试这个:

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

在ga_sessions架构中,"点击"是ARRAY(即REPEATED模式)。您需要应用UNNEST操作才能在BigQuery中使用数组。