web-dev-qa-db-ja.com

Bigquery標準SQLに「含む」

レガシーSQLから標準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, "%") 

しかし、それは私にこのエラーを与えます:

エラー:タイプARRAY>の値のフィールドページに[4:21]でアクセスできません

7
MFR

これを試してください:

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

Ga_sessionsスキーマでは、「ヒット」はARRAY(つまり、REPEATEDモード)です。 BigQueryで配列を操作するには、 [〜#〜] unnest [〜#〜] 演算を適用する必要があります。

9
Willian Fuks