sql - 如何在where子句中使用列别名
问题描述
我正在尝试删除所有具有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
解决方案
您不能在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
推荐阅读
- ios - 在 Swift 5 中使用动态值初始化属性包装器
- scala - 在 spark sql 上查找 total_sale 连续下降
- javascript - 不能在 Javascript 文件中使用绝对 URL?
- reactjs - 我可以在另一个单水疗容器中放置一个单水疗容器吗?
- mysql - 如何将 show partition 查询与 select 语句结合使用以获取带有表名的最新分区
- controller - 如何当前门户用户组odoo 12
- python - 基于 Dataframe 中的值的颜色条形图
- angular - 有没有办法在 Angular 的子组件级别中找出其父组件的身份/类型?
- postgresql - 使用单列计算排名而不使用 rank 或 rownums 函数
- html - Angular Kendo DatePicker:选择没有年份的月份和日期