2017-07-07 32 views
0

查询1:加入下列查询时发生异常,有人可以帮助我加入查询吗?

select col1,sum(col2) from tablea src 
    join 
    (select distinct col3,ROW_NUMBER() OVER(ORDER BY col3 desc) as RN) 
    From tableb) trgt 
    where RN=1 and src.col3 = trgt.col3 group by col1 

问题2:

select col1,sum(col2) from tablea src 
join 
(select distinct col3,ROW_NUMBER() OVER(ORDER BY col3 desc) as RN) 
From tableb) trgt 
where RN=2 and src.col3 = trgt.col3 group by col1 

加入查询:

select * 
    from (Query 1) curr join (Query 2) 
    prev on curr.col1 = prev.col1 

FAILED:ParseException的线6:75不能识别邻近输入 '为' 中 'CURR'子查询源

回答

0

我认为没有必要加入这两个查询,si他们彼此非常相似,就像两滴水。
某种支点查询可以完成这项工作:

SELECT col1, 
     SUM(CASE WHEN rn=1 THEN col2 END), 
     SUM(CASE WHEN rn=2 THEN col2 END) 
FROM tablea src 
JOIN (
    select col3,ROW_NUMBER() OVER(ORDER BY col3 desc) as RN) 
    From tableb 
) trgt 
ON src.col3 = trgt.col3 AND trgt.rn <= 2 
GROUP BY col1 
+0

谢谢它的作品! –

+0

如果你喜欢我的回答,请重音,谢谢。 – krokodilko