2017-08-13 3 views
-1

サンプル表ハイブ - 1つのクエリで複数の測定値を持つ上位N?

value measurement1 measurement2 
-------|-------------|----------- 
value1  1   **2** 
value2  **3**   **3** 
value3  **2**   1 

その後、私は以下の出力を取得したいトップ2最高値、 を見つける:

top 2 by measurement1 top 2 by measurement2 
---------------------|---------------------- 
     value2     value2  
     value3     value1 

答えて

0

あなたがrow_number()joinを使用してこれを行うことができます。

select s1.value1 as col1, 
     s2.value2 as col2 
from (select s.*, 
      row_number() over (order by value1) as seqnum 
     from sample s 
    ) s1 join 
    (select s.*, 
      row_number() over (order by value2) as seqnum 
     from sample s 
    ) s2 
    on s1.seqnum = s2.seqnum 
where s1.seqnum <= 2 
order by s1.seqnum; 
関連する問題