Гость
Map
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Поиск непрерывных последовательностей / 3 сообщений из 3, страница 1 из 1
28.02.2022, 09:44
    #40136655
LiYing
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск непрерывных последовательностей
Дано: таблица
Код: sql
1.
CREATE TABLE t(x INTEGER PRIMARY KEY);


с неотсортированной последовательностью чисел (уникальные числа от 1 до 50000 в хаотичном порядке с неравномерными пропусками). Ниже пример отсортирован, для лучшего восприятия:
2
3
4
6
7
24
27
28
49
50
51
52
53
54
56
57
58
59
61
62
63
64
69
70
71

И то же самое в виде групп непрерывных последовательностей:
2,3,4
6,7
24
27,28
49,50,51,52,53,54
56,57,58,59
61,62,63,64
69,70,71

Помогите, пожалуйста, составить такой запрос (если он вообще возможен), чтобы получить отсортированный по убыванию список в виде трех столбцов длина_последовательности , мин_значение_в_последовательности , макс_значение_в_последовательности ?
Т.е. для примера выше нужно получить:
lengthminXmaxXдля последовательности6495449 50 51 52 53 544565956 57 58 594616461 62 63 643242 3 43697169 70 712676 72272827 281242424
...
Рейтинг: 0 / 0
28.02.2022, 12:12
    #40136677
MazoHist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск непрерывных последовательностей
LiYing,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
select min(x)
     , max(x)
     , count(x) 
  from (select x
             , count(start_of_group) over (order by x) group_num
          from (select x
                     , case when x-lag(x,1,0) over (order by x)!=1 then 1 end start_of_group 
                  from t
               )
       ) 
 group by group_num
...
Рейтинг: 0 / 0
28.02.2022, 13:20
    #40136686
LiYing
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск непрерывных последовательностей
MazoHist,

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


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