Sql 配置单元-在一个查询中具有多个度量值的前N个?
样本表Sql 配置单元-在一个查询中具有多个度量值的前N个?,sql,hive,multiple-columns,measurement,top-n,Sql,Hive,Multiple Columns,Measurement,Top N,样本表 value measurement1 measurement2 -------|-------------|----------- value1 1 **2** value2 **3** **3** value3 **2** 1 然后找到前2个最高值, 我希望得到以下输出: top 2 by measurement1 top 2 by measurement2 ----------------
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
您可以使用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;