Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / помогите решить задачку / 9 сообщений из 9, страница 1 из 1
25.07.2015, 20:31
    #39016030
SQLnoob(
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите решить задачку
есть таблица с одним полем со значениями 5, 7, 12, 8

нужно написать SQL запрос и получить
5 7
7 8
8 12

view использо8ать нельзя
...
Рейтинг: 0 / 0
25.07.2015, 21:53
    #39016038
Павел Воронцов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите решить задачку
SQLnoob(,

А ты как решал?
...
Рейтинг: 0 / 0
25.07.2015, 23:13
    #39016054
SQLnoob(
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите решить задачку
Павел Воронцов,
я близок к решению, мозги кепят от нех8атки знаний, пока так

select n.num, p.num from testnum n, testnum p where n.num < 12 and p.num > 5

где num - наз8ание поля таблицы, testnum сама таблица

этот запрос 8ы8одит
5;7
5;12
5;8
7;7
7;12
7;8
8;7
8;12
8;8
я еще не разобрался почему, может кто подскажет, я тоже еще пошаманю
...
Рейтинг: 0 / 0
26.07.2015, 04:39
    #39016079
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите решить задачку
SQLnoob(where n.num < 12 and p.num > 5Какой смысл в этом условии? Правильно, никакого.

Что тебе нужно?
1) Чтобы левое поле было от 5 до 8. И вывод надо отсортировать.
- сделай этот запрос. Он очень примитивный.
2) Чтобы второе поле было минимальное из всех значений которые больше чем в первом поле.
- добавь в первый запрос подзапрос с агрегатом min().
И все.
...
Рейтинг: 0 / 0
26.07.2015, 13:03
    #39016125
eNose
Участник
[не активирован]
[не одобрен]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите решить задачку
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
with table1 as
(
select aa, rownum bb from
(
select aa
from (select 5 aa from dual union all select 7 from dual union all select 12 from dual union all select 8 from dual) tt
order by 1
)
)
select t2.aa, t1.aa from table1 t1, table1 t2 where t1.bb = t2.bb+1



как-то так.
http://sqlfiddle.com/#!4/9eecb7d/2646 там проверил - работает.
...
Рейтинг: 0 / 0
26.07.2015, 13:51
    #39016135
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите решить задачку
Код: plsql
1.
select aa, lead(aa) over (order by aa) from table1 order by aa
...
Рейтинг: 0 / 0
26.07.2015, 18:19
    #39016189
SQLnoob(
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите решить задачку
8сем спасибо кто мне помогал, наиболее лаконичным и пра8ильным был от8ет Дмитрия, я его немного переделал и конечный результат 8ыглядит так

select num, lead(num) over (order by num) from testnum limit 3
...
Рейтинг: 0 / 0
26.07.2015, 18:57
    #39016195
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите решить задачку
SQLnoob(и пра8ильным был

А чем же решение eNose не правильное? Много букв? К тому же, оконная функция LEAD не всеми СУБД поддерживается
...
Рейтинг: 0 / 0
27.07.2015, 08:45
    #39016309
eNose
Участник
[не активирован]
[не одобрен]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите решить задачку
SQLnoob(select num, lead(num) over (order by num) from testnum limit 3 limit 3 - за такое "решение" увольнять надо
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / помогите решить задачку / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]