![](/img/trans.png)
[英]BigQuery SELECT statement with WHERE clause fail only on BQ CLI
[英]SELECT statement in WHERE clause on BigQuery not working
我正在尝试在Google BigQuery上运行以下查询:
SELECT SUM(var1) AS Revenue
FROM [table1]
WHERE timeStamp = (SELECT MAX(timeStamp) FROM [table1])
我收到以下错误:
错误:在第3行第19列遇到“”。期待以下之一:
BigQuery不支持这个吗? 如果是这样,会有一个优雅的选择吗?
不支持在比较谓词中进行子选择,但您可以使用IN。
SELECT SUM(var1) AS Revenue
FROM [table1]
WHERE timeStamp IN (SELECT MAX(timeStamp) FROM [table1])
我会使用Rank()来获取最大时间戳,并过滤where子句中的#1。
select SUM(var1) AS Revenue
From
(SELECT var1
,RANK() OVER (ORDER BY timestamp DESC) as RNK
FROM [table1]
)
where RNK=1
我不知道它如何与BQ一起工作,但在其他数据库技术中它会更有效,因为它只涉及单个表扫描而不是2个。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.