문제

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 개가 아닌 단일 테이블 스캔 만 포함하는 것만 큼 효율적입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top