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

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

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

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

Что тебе нужно?
1) Чтобы левое поле было от 5 до 8. И вывод надо отсортировать.
- сделай этот запрос. Он очень примитивный.
2) Чтобы второе поле было минимальное из всех значений которые больше чем в первом поле.
- добавь в первый запрос подзапрос с агрегатом min().
И все.
...
Рейтинг: 0 / 0
помогите решить задачку
    #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
помогите решить задачку
    #39016135
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
select aa, lead(aa) over (order by aa) from table1 order by aa
...
Рейтинг: 0 / 0
помогите решить задачку
    #39016189
SQLnoob(
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
8сем спасибо кто мне помогал, наиболее лаконичным и пра8ильным был от8ет Дмитрия, я его немного переделал и конечный результат 8ыглядит так

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

А чем же решение eNose не правильное? Много букв? К тому же, оконная функция LEAD не всеми СУБД поддерживается
...
Рейтинг: 0 / 0
помогите решить задачку
    #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]