google-bigquery - BigQuery 选择语句别名在 where 子句中不起作用
问题描述
我尝试了下面的查询,但它抛出错误 RANK 未定义。
SELECT
EmailAddress
, FirstName
, LastName
, RANK() OVER (ORDER BY BookingDate) AS RANK FROM `table_name`
WHERE RANK BETWEEN 5 AND 7
解决方案
以下是 BigQuery 标准 SQL
WHERE 子句在查询输出形成并分配别名之前进行评估,这意味着该字段rank
在WHERE rank BETWEEN 5 AND 7
.
你只需要在下面使用
#standardSQL
SELECT * FROM (
SELECT
EmailAddress
, FirstName
, LastName
, RANK() OVER (ORDER BY BookingDate) AS rank
FROM `project.dataset.table`
)
WHERE rank BETWEEN 5 AND 7
推荐阅读
- python - 将浮点数转换为字符串 numba python numpy 数组
- docker - 了解 docker 卷和卷选项
- json - 如何在反应js中访问json对象内的数组
- database - 如何使用 INIT=RUNSCRIPT FROM 'mytestscript.sql' 加载 sql 脚本文件并检查它是否已加载
- sequelize.js - 如何将 sequellize.fn 与具有超过 1 个参数的 SQL TIMESTAMPDIFF 函数一起使用
- c# - 如何在运行时替换 c# ToString() 方法
- android - 想要以编程方式从 ZEBRA DS2278 读取扫描的条码 Android
- javascript - 通过鼠标单击存储 div 背景颜色并在单击时将其释放到另一个 div
- arrays - 如果用户 selected_city 也将来自未从 CITY MODEL 选择的城市,如何从用户已经选择的城市键的数组中获取结果
- algorithm - 什么算法谁的复杂度最差 O(2^2^n)?