2016-06-03 5 views
-1

테이블에 3 개의 열이 있습니다. ID, 타임 스탬프 및 주석. 하나의 ID는 여러 개의 주석을 가질 수 있습니다. 우리는 Rank() 함수를 사용하여 수행 한 desc 형식의 타임 스탬프를 기반으로 상위 세 개의 주석을 선택해야한다는 요구 사항이 있습니다. 다음 요구 사항은 파이프 분리를 사용하여 ID와 3 개의 상위 주석을 연결하는 것입니다. 이를 달성하기 위해 concat_ws를 사용했습니다. 그러나 이러한 주석은 타임 스탬프의 내림차순으로 연결되지 않습니다. 그들은 무작위로 연결됩니다.하이브에서 연결하기 전에 정렬 문자열

이 방법은 사용자 지정 udf를 사용하지 않고 desc timestamp order와 동일한 순서로 연결을 수행합니까?

+0

현재 사용중인 쿼리를 게시 할 수 있습니까? – gobrewers14

답변

0

row_number() over (partition by id order by timestamp desc)을 사용하고 각 ID에 대해 3 개의 댓글에 숫자를 입력하십시오. 그런 다음 앞서 작성한 rno에 따라 주석을 연결하는 쿼리를 작성하십시오.

관련 문제