Я использую Oracle SQL, и мне нужна помощь с жестким запросом.Выполнение одного и того же запроса снова и снова
У меня есть следующая таблица (MyTable
):
id int,
name1 int,
name2 int,
..
..
..
name80 int,
Эти имена столбцов являются подделкой.
Вот мой запрос:
select id ,cnt/(select count(*) from MyTable)
from(
select id, name1, name2, count(distinct name1) over(partition by name2) cnt
from my MyTable);
Мне нужно выполнить этот запрос каждый раз, когда для следующей пары колонок. Например, следующая пара будет:
select id ,cnt/(select count(*) from MyTable)
from(
select id, name2, name3, count(distinct name2) over(partition by name3) cnt
from my MyTable);
И так далее.
Конечная таблица вывода должна включать идентификатор и расчет каждой пары.
id int,
"calc of name1+name2" float,
"calc of name2+name3" float,
"calc of name3+name4" float,
"calc of name4+name5" float,
"calc of name5+name6" float,
...
...
...
"calc of name79+name80" float,
Может кто-нибудь показать мне, как это сделать? Я буду очень признателен за любую помощь. Я чувствую себя потерянным.
«Может кто-нибудь показать мне, как это сделать?» Кто-то определенно сможет, как только вы предоставите образец исходных данных и желаемого результата, лучше всего используйте [sqlfiddle] (http://sqlfiddle.com/#! 4). –
Все исходные данные являются столбцами int. Имена колонок совершенно разные. Что-то не хватает? – Omri
Я немного обеспокоен тем, что вы это делаете. Почему у вас 80 отдельных уровней гнездования - особенно в виде столбцов? –