|
В чем смысл
|
|||
---|---|---|---|
#18+
Доброго времени суток. Я новичок в MySQL и хоть убей, но никак не пойму код задачи: В реляционной БД есть таблица с последовательностью натуральных чисел. Необходимо написать SQL запрос, выбирающий данные о всех пропусках чисел в данной последовательности, в виде двух колонок: первая колонка – начало интервала с пропущенными числами, вторая колонка – конец интервала. Например, Исходная таблица: 1 3 4 7 8 12 15 17 Результат выполнения запроса: 2, 2 5,6 9,11 13, 14 16, 16 Решение: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Заранее спасибо!!! Модератор: Тема перенесена из форума "Работа". ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2021, 03:22 |
|
В чем смысл
|
|||
---|---|---|---|
#18+
D1N1J1, чуть упростил исходный запрос: Код: sql 1. 2. 3. 4. 5. 6.
попробуйте выполнять его по частям и анализировать, что меняется/добавляется/убирается в результатах Код: sql 1. 2. 3. 4. 5.
Код: sql 1. 2. 3. 4. 5. 6. 7.
и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2021, 11:25 |
|
В чем смысл
|
|||
---|---|---|---|
#18+
AndrewS чуть упростил исходный запрос: Код: sql 1. 2. 3. 4. 5. 6.
t1.id в order by явно лишнее. Еще рабочий вариант без левого джойна и фильтра (по ручным тестам на этих данных получился самым быстрым из предлагаемых) Код: sql 1. 2. 3. 4. 5. 6. 7.
Но наверняка есть более быстрое и красивое решение. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2021, 12:00 |
|
|
start [/forum/topic.php?fid=47&msg=40103006&tid=1827921]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
163ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 247ms |
total: | 503ms |
0 / 0 |