“包含” 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中处理数组。
Hi @Will谢谢。但它并没有给我和Legacy一样的结果。为什么这样? – MFR
与传统结果有什么不同?他们应该都是平等的。 –
它只给我一行数据。 – MFR