2016-08-12 2 views
1

시간이 지남에 따라 길이의 변화를 식별하는 쿼리가 있는데, 그 데이터가 겉으로는 누락 된 경우 갭을 메울 수 있습니다. 하이브에서BigQuery의 중간 값을 사용하는 보간

, 그것은 다음과 같이 보일 것입니다 : 그러나

NTH(50, QUANTILES(book_length, 101)) OVER (PARTITION BY book order by read_timestamp ROWS BETWEEN 20 PRECEDING AND 20 FOLLOWING)

내가 : BigQuery를 (레거시) 내가 그것을 다음과 같이 보일 것 상상에서

floor(percentile(cast(book_length as BIGINT), 0.5)) over (partition by book order by read_timestamp ROWS BETWEEN 20 PRECEDING AND 20 FOLLOWING)

오류 Unrecognized is not currently supported as an analytic function을 얻으십시오.

의견이 있으십니까? 나는이과 복잡함을 수 있습니다 ... 원래 하이브 솔루션은 밤 :)에서 매우 늦게 이루어졌다

NTH와 (BigQuery에서 기존 SQL에서) 분위수 집계 함수는 윈도우 함수에서 지원되지 않습니다
+0

중요, 당신은 투표 아래에 게시 대답의 왼쪽에있는 진드기를 사용하여 허용 대답을 표시 할 수 있습니다. 중요한 이유는 http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work#5235를 참조하십시오. 또한 대답에 투표하는 것이 중요합니다. 도움이되는 답변에 투표하십시오. 더 많은 것이 있습니다 ... 누군가가 당신의 질문에 대답 할 때 무엇을해야하는지 확인할 수 있습니다 - http://stackoverflow.com/help/someone-answers. –

답변

0

작업을해야 다음과 같은

뭔가하지만, 당신이 창/분석 기능
NTH_VALUE, NTILE 같은 지원됩니다

SELECT 
    book, 
    NTH(50, QUANTILES(book_length , 101)) as x 
FROM yourTable 
GROUP BY book 

확인 다른 기능 ...

레거시 S를 필요하지 않습니다 QL - Window functions
표준 SQL - SO에 Analytic Functions