我有一个表 x,它返回 20 行,表 x 有 6 列,现在我还有一个表 y,它只有一列有 5 行,现在我想返回 x 的所有行和所有列加上单列行表 y 和 y 的所有这 5 个值应该重复 4 次,因为表 x 有 20 行。如果表 x 有 18 行,那么在表 y 的最后一次迭代中,只应重复 3 个值。
示例:表 x:
Id name
1 peter
2 john
3 robin
4 amy
5 joseph
6 king
7 brain
8 nancy
现在表y:
Rank
X
Y
Z
我想要的最终输出,
Id name rank
1 peter X
2 john Y
3 robin Z
4 amy X
5 joseph Y
6 king Z
7 brain X
8 nancy Y
我会感谢你的帮助,
感谢和问候, Vijay dubey
您可以使用row_number()
和模块化算法:
select x.*, y.rank
from (select x.*, row_number() over (order by id) as seqnum
from x
) x join
(select y.*, row_number() over (order by id) as seqnum,
count(*) over () as cnt
from y
) y
on mod(x.seqnum, y.cnt) = mod(y.seqnum, y.cnt);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句