Не могли бы вы немного помочь мне с вопросом о синтаксисе standardql Bigquery, пожалуйста? Я пытаюсь понять, почему (и как это исправить) этот запрос standardql возвращает 2 строки, в то время как этот legacysql возвращает только 1 (а я ожидаю только одну).
StandardSQL
SELECT
hits2.transaction.transactionId as transactionId
FROM `ga-export-TTTT.1234567890.ga_sessions_*`
,UNNEST (hits) as hits2
WHERE
hits2.transaction.transactionId = '03971163'
LegacySQL
select
hits.transaction.transactionId
FROM
TABLE_DATE_RANGE([ga-export-TTTT:1234567890.ga_sessions_], TIMESTAMP('2016-09-01'), TIMESTAMP('2017-02-14'))
WHERE
hits.transaction.transactionId = '03971163'
Прочитав справку, я также попробовал этот StandardSQL с теми же двумя строками в результатах:
select
title
from
(
SELECT
ARRAY(SELECT transaction.transactionId FROM UNNEST(hits)
WHERE transaction.transactionId = '03971163') AS title
FROM `ga-export-TTTTT.1234567890.ga_sessions_*`
)
WHERE ARRAY_LENGTH(title) > 0;
Был бы признателен за любую помощь в этом.