|
Найти минимальную дырку одной выборкой
|
|||
---|---|---|---|
#18+
Привет всем! Дано таблица, с полем id number(16). Данные в ней 15,16,17,20,21,22.... Задача найти одним select-ом первую Дырку в поле id в диапазоне > 10 Как сделать с помощью двух я в курсе: Первый select с помощью left join min Второй с connect by подставляем из первого Верхнюю границу, нижняя 10. Чё то не могу их соединить, там затык, то что в with не даёт подставлять select Ну это так не к спеху, просто интересно кто как решал. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2020, 17:01 |
|
Найти минимальную дырку одной выборкой
|
|||
---|---|---|---|
#18+
PVSpichak, Чужой поток сознания никто и никак не решал, ибо не интересно. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2020, 17:03 |
|
Найти минимальную дырку одной выборкой
|
|||
---|---|---|---|
#18+
lag/lead + group by ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2020, 17:06 |
|
Найти минимальную дырку одной выборкой
|
|||
---|---|---|---|
#18+
pattern matching ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2020, 17:12 |
|
Найти минимальную дырку одной выборкой
|
|||
---|---|---|---|
#18+
AmKadlag/lead + group by А group by там зачем? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2020, 17:56 |
|
Найти минимальную дырку одной выборкой
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, min найти ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2020, 18:31 |
|
Найти минимальную дырку одной выборкой
|
|||
---|---|---|---|
#18+
PVSpichak, так, как ты написал, с доп запросом: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
и вариант №2, с аналитикой: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2020, 18:35 |
|
Найти минимальную дырку одной выборкой
|
|||
---|---|---|---|
#18+
chidoriamimin найти И?.. Автору же нужна одна первая дырка. Код: sql 1.
Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2020, 18:47 |
|
Найти минимальную дырку одной выборкой
|
|||
---|---|---|---|
#18+
PVSpichak, Один запрос. Но без дырок он не может) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2020, 20:14 |
|
Найти минимальную дырку одной выборкой
|
|||
---|---|---|---|
#18+
chidoriami спасибо первый вариант работает, второй нет, но понятно как допилить можно по аналогии с первым. oragraf, ну вот че ты язвишь, на проверь свой вариант на: create table test(id number(16)); begin insert into test(id) values(15); insert into test(id) values(16); insert into test(id) values(17); insert into test(id) values(20); insert into test(id) values(21); insert into test(id) values(22); commit; end; че ты выдал? 18 а где же 11? Или 18 теперь считать за 11 :)? может не понял чего я хочу, ну тогда извини. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2020, 04:37 |
|
Найти минимальную дырку одной выборкой
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2020, 08:30 |
|
Найти минимальную дырку одной выборкой
|
|||
---|---|---|---|
#18+
oragraf Один запрос. Но без дырок он не может) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2020, 19:20 |
|
Найти минимальную дырку одной выборкой
|
|||
---|---|---|---|
#18+
Привет SY! Спасибо за наводку по match_recognize, но у тебя тоже, как ни странно получилось 18 :), повторяю условие найти в диапазоне > 10, и в общем случае вовсе не обязательно наличие в таблице записи с id <=10 ровно как и наличия вообще записей :) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2020, 04:17 |
|
Найти минимальную дырку одной выборкой
|
|||
---|---|---|---|
#18+
PVSpichakв общем случае вовсе не обязательно наличие в таблице записи с id <=10 ровно как и наличия вообще записей :) Это решается добавлением в запрос union all фиктивной записи с id = 9. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2020, 13:26 |
|
Найти минимальную дырку одной выборкой
|
|||
---|---|---|---|
#18+
забавно, казалось бы lag(id) over(order by id) при наличии первичного ключа по ID должен бы делать window nosort, но нет: тестовые таблички Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
план Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35.
обратите внимание на секцию проекций ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2020, 17:12 |
|
Найти минимальную дырку одной выборкой
|
|||
---|---|---|---|
#18+
в общем, в случае если есть индекс и операция сортировки не нужна, то опять же pl/sql вариант будет самым лучшим: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2020, 17:18 |
|
Найти минимальную дырку одной выборкой
|
|||
---|---|---|---|
#18+
xtender window nosort ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2020, 17:23 |
|
Найти минимальную дырку одной выборкой
|
|||
---|---|---|---|
#18+
xtender, а если дырок нет, что вернет? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2020, 22:51 |
|
Найти минимальную дырку одной выборкой
|
|||
---|---|---|---|
#18+
andreymx, ORA-xxxxx Функция без ретурна - деньги на ветер ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2020, 23:03 |
|
Найти минимальную дырку одной выборкой
|
|||
---|---|---|---|
#18+
andreymx, А что такое "дырка" при отсутствии верхней границы? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2020, 23:07 |
|
Найти минимальную дырку одной выборкой
|
|||
---|---|---|---|
#18+
xtender andreymx, А что такое "дырка" при отсутствии верхней границы? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2020, 23:32 |
|
Найти минимальную дырку одной выборкой
|
|||
---|---|---|---|
#18+
xtender, это автора бы неплохо спросить. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 00:40 |
|
Найти минимальную дырку одной выборкой
|
|||
---|---|---|---|
#18+
andreymx, oragraf, Мне это неинтересно. При желании легко допилить как потребуется. Мне тут интересно было только то, что в случае индекса нет идеального sql варианта, те возможности обойтись без полного вычитывания или же нестед лупс с кучей irs/ius. Вкратце, lead/lag не идеальны. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 01:15 |
|
Найти минимальную дырку одной выборкой
|
|||
---|---|---|---|
#18+
-- в терминах таблиц, определенных в 22071158 Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
PS вроде бы xtender должен был бы сначала такое показать, а потом lead/lag исследовать... странно это всё... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 03:09 |
|
Найти минимальную дырку одной выборкой
|
|||
---|---|---|---|
#18+
Привет, по верхней границе: Ну, так, давайте уточним, есть диапазон id number(16) > 10, есть таблица test(id number(16) not null primary key) c записями, или пустая, нужно выдать первую дырку (minHole = минимальное целое, при отсутствие в таблице строки с id=minHole) в диапазоне > 10. По-моему корректное условие. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 03:18 |
|
|
start [/forum/topic.php?fid=52&msg=39921557&tid=1881560]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 268ms |
total: | 415ms |
0 / 0 |