在where子句中使用列别名

问题描述 投票:0回答:1

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
sql google-bigquery cross-join
1个回答
1
投票

您不能在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
© www.soinside.com 2019 - 2024. All rights reserved.