我在下面提到了两个表。
Table1
ID ref_id O-1 rt-1-r O-2 rx-2-e
Table2
ref_id seq value rt-1-r 1 10 rt-1-r 2 15 rt-1-r 3 0 rt-1-r 4 18 rx-2-e 12 1 rx-2-e 13 13 rx-2-e 14 21
所需输出
ID Value O-1 0 O-2 13
我已经尝试了下面提到的查询,但它对一个有效ID当我传递多个ID在IN它不工作。
select b.ID, a.Value FROM Table2 a LEFT JOIN Table1 b ON a.ref_id = b.ref_id WHERE a.ID IN ('O-1') order by a.seq desc limit 1 OFFSET 1;
【玩转 GPU】有奖征文
精美礼品等你拿!
我会用ROW_NUMBER这里:
WITH cte AS ( SELECT *, ROW_NUMBER() OVER (PARTITION BY ref_id ORDER BY seq DESC) rn FROM Table2 SELECT t1.ID, t2.value FROM Table1 t1 INNER JOIN cte t2 ON t2.ref_id = t1.ref_id WHERE t2.rn = 2;
我不喜欢不使用解析函数,但是如果你必须这样做,这里有一种方法:
SELECT