powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Последовательность натуратьных числел в таблицу
5 сообщений из 5, страница 1 из 1
Последовательность натуратьных числел в таблицу
    #39295973
SoRk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Помогите, пожалуйста, разобраться за запросом на Oracle SQL

Задача: Есть последовательность натуральных чисел в таблице с пропусками -- 1 2 3 5 8 9 10 11
Нужно из данной последовательности создать таблицу: первый столбец - первая цифра непрерывной последовательности - 1,
второй столбец - последняя цифра непрерывной последовательности - 3, третий столбец количество цифр в непрерывной последовательности - 3

--CREATE TABLE TMP_t (i int);
--INSERT INTO TMP_T (I) VALUES (1);
--INSERT INTO TMP_T (I) VALUES (2);
--INSERT INTO TMP_T (I) VALUES (3);
--INSERT INTO TMP_T (I) VALUES (5);
--INSERT INTO TMP_T (I) VALUES (8);
--INSERT INTO TMP_T (I) VALUES (9);
--INSERT INTO TMP_T (I) VALUES (10);
--INSERT INTO TMP_T (I) VALUES (11);

--CREATE TABLE TMP_t2 (first int, last int, s_count int);

-- 1 2 3 5 8 9 10 11
-- 1 3 3
-- 5 5 1
-- 8 11 4

Спасибо
...
Рейтинг: 0 / 0
Последовательность натуратьных числел в таблицу
    #39296034
stfrt_of_group
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
with tt as (select '1 2 3 5 8 9 10 11' as s from dual),
     t1 as (select to_number(regexp_substr(s,'[^ ]+',1,level)) as s
            from tt
            connect by level <= regexp_count(s,' ') + 1),
     t as (select s, s - row_number() over (order by s) as gr 
           from t1)
select min(s), max(s), count(*)
from t           
group by gr
order by 1
...
Рейтинг: 0 / 0
Последовательность натуратьных числел в таблицу
    #39296044
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Часто обсуждалось
Тут много что обсуждалось...
Код: plsql
1.
2.
3.
4.
5.
6.
7.
[SRC PLSQL]select min(i) first, max(i) last, count(distinct i) s_count 
from ( select i, i-dense_rank() over(order by i) g 
         from tmp_t
     )
group by g
order by first
;

[/SRC]
...
Рейтинг: 0 / 0
Последовательность натуратьных числел в таблицу
    #39296055
SoRk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, все понятно
...
Рейтинг: 0 / 0
Последовательность натуратьных числел в таблицу
    #39296119
Код: sql
1.
count(...)

это будет "количество цифр" только в очень узких пределах.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Последовательность натуратьных числел в таблицу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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