Нужна помощь по запросу Oracle SQL

У меня есть таблица x, которая возвращает 20 строк, а таблица x имеет 6 столбцов и теперь у меня есть еще одна таблица y, в которой есть только один столбец с 5 строками теперь я хотел бы вернуть все строки и все столбцы x плюс отдельные строки столбца таблицы y, и все эти 5 значений y должны быть повторены 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

Буду признателен за вашу помощь,

Спасибо и привет, Виджей дубей

Для протокола, я думаю, что это хороший вопрос, и я не понимаю отрицательных голосов.

Gordon Linoff 18.08.2018 16:21
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
3
1
122
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Можно использовать 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);

Большое спасибо Гордону за такую ​​краткую и чудесную логику, большое спасибо :-)

vijay 18.08.2018 16:18

Другие вопросы по теме