|
Первая следующая "не такая". Можно ли решить с помощью оконных функций?
|
|||
---|---|---|---|
#18+
Коллеги, приветствую! Уже часа 2 активно туплю. Можно ли решить "в один проход", с помощью оконной функции, следующую задачу: Нужно каждому [i], сопоставить следующий в порядке возрастания [k] [i], в том случае если у этого следующего [i] ---- [j] > 0 Неправильный вариант решения - я привел: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Он выдает: i ii1 33 22 64 NULL6 75 NULL9 NULL7 108 NULL10 NULL11 NULL А нужно: i ii1 33 22 64 66 75 79 77 108 1010 NULL11 NULL Обратите внимание, что никакое решение, кроме однопроходного оконного - мне не интересно. Я легко могу решить этот кейс с помощью, например, самосоединения таблицы. Интересует именно решение с помощью оконной функции! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2020, 16:16 |
|
Первая следующая "не такая". Можно ли решить с помощью оконных функций?
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2020, 17:15 |
|
Первая следующая "не такая". Можно ли решить с помощью оконных функций?
|
|||
---|---|---|---|
#18+
invm Код: sql 1. 2. 3. 4. 5.
Гыыы, какой грязный трюк! invm, спасибо. В оригинале i - guid, но сейчас гляну, что можно сделать! Спасибо. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2020, 17:27 |
|
Первая следующая "не такая". Можно ли решить с помощью оконных функций?
|
|||
---|---|---|---|
#18+
uaggster В оригинале i - guid Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2020, 17:57 |
|
Первая следующая "не такая". Можно ли решить с помощью оконных функций?
|
|||
---|---|---|---|
#18+
invm, Да, спасибо, примерно так и сделал. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2020, 19:20 |
|
Первая следующая "не такая". Можно ли решить с помощью оконных функций?
|
|||
---|---|---|---|
#18+
uaggster, как-то такое сделал без конкатенаций в несколько уровней оконок. Пишу, как любитель оконных функций Кмк, в примере выше, stuff() был бы по изящнее, хотя насчет переносимости не уверен. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2020, 00:19 |
|
Первая следующая "не такая". Можно ли решить с помощью оконных функций?
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
fiddle ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2020, 00:54 |
|
Первая следующая "не такая". Можно ли решить с помощью оконных функций?
|
|||
---|---|---|---|
#18+
nullin, Блин, это даже не раскуришь с наскока. Нет, запрос invm мне больше нравится (на первый взгляд). Реальный запрос на реальной базе на 15 миллионах записей считался всего около 10 минут. И да, со stuff. Присобачиваю спереди значение поля, по которому производится сортировка (datatime), а потом усекаю как stuff(..., 1, 19, '') ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2020, 09:19 |
|
|
start [/forum/topic.php?fid=46&fpage=63&tid=1686268]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 281ms |
total: | 403ms |
0 / 0 |