Использование псевдонима столбца в предложении where - PullRequest
0 голосов
/ 29 января 2020

enter image description here

Я пытаюсь удалить все строки, которые имеют productRef = productAssociated.
Я пробовал запрос ниже, но последняя строка не работает.

Что не так?

SELECT date, transaction.transactionId, 
       ref.productSKU as productRef, 
       associated.productSKU as productAssociated, 
       ARRAY_LENGTH(hits.product) as nbProducts
FROM `dl-recommendation-engine.NDA_CHANEL_137002018.ga_sessions_*` as session,
     UNNEST(hits) AS hits,
     UNNEST(hits.product) as ref,
     UNNEST(hits.product) as associated
WHERE _TABLE_SUFFIX BETWEEN '20191122' AND '20191202' AND
      hits.transaction.transactionId IS NOT NULL AND
     ARRAY_LENGTH(hits.product) > 2 AND
     productAssociated != productRef

1 Ответ

1 голос
/ 29 января 2020

Вы не можете использовать псевдонимы таблиц в предложении where.

Вместо этого просто используйте выражения:

WHERE _TABLE_SUFFIX BETWEEN '20191122' AND '20191202' AND
      hits.transaction.transactionId IS NOT NULL AND
      ARRAY_LENGTH(hits.product) > 2 AND
      associated.productSKU <> ref.productSKU
...