BigQuery의 Where 절에서 선택한 문장이 작동하지 않습니다
-
20-12-2019 - |
문제
Google BigQuery에서 다음 쿼리를 실행하려고합니다.
SELECT SUM(var1) AS Revenue
FROM [table1]
WHERE timeStamp = (SELECT MAX(timeStamp) FROM [table1])
.
다음 오류가 발생합니다.
오류 : ""라 3 일째, 열 19는 다음 중 하나를 기대하고있었습니다.
BigQuery에서는 지원되지 않습니다.그렇다면 우아한 대안이있을 것입니까?
해결책
subselect 비교 술어가 지원되지 않지만에서 사용할 수 있습니다.
SELECT SUM(var1) AS Revenue
FROM [table1]
WHERE timeStamp IN (SELECT MAX(timeStamp) FROM [table1])
. 다른 팁
Max Timestamp을 가져오고 Where 절에서 # 1을 필터링하려면 RANK ()를 사용합니다.
select SUM(var1) AS Revenue
From
(SELECT var1
,RANK() OVER (ORDER BY timestamp DESC) as RNK
FROM [table1]
)
where RNK=1
.
BQ와 함께 작동하는 방법을 모르지만 다른 DB 기술에서는 2 개가 아닌 단일 테이블 스캔 만 포함하는 것만 큼 효율적입니다.
제휴하지 않습니다 StackOverflow