|
|
|
супир иерархия
|
|||
|---|---|---|---|
|
#18+
добрый день ! подскажите пожалуйста, эх.. есть например набор ord level blabla 1 1 a 2 2 b 3 1 c 4 2 d 5 2 t 6 3 jz 7 3 z 8 3 i нужно выбрать для каждой строки набор c вышестоящим level , например для 7 3 z нужно выбрать строки 5 2 t 3 1 c и результат вывести в одну строку 7 3 z t c это же при помощи аналитической функции lead ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2017, 18:00 |
|
||
|
супир иерархия
|
|||
|---|---|---|---|
|
#18+
ord- уникальный сквозной ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2017, 18:02 |
|
||
|
супир иерархия
|
|||
|---|---|---|---|
|
#18+
в функции lag есть параметр, задающий смещение к примеру: LAG(dim_recname,2, null) OVER(ORDER BY ord, level) prev_code выведет значение на две строки выше, если таког нет- вставит null теперь как вот подзапросом в колонке селекта вывести в одну строку данные по всем вышестоящим level (( то есть как -то вычислить , сколько их и передать параметр смещения (( не могу сообразить( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2017, 18:20 |
|
||
|
супир иерархия
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2017, 18:25 |
|
||
|
супир иерархия
|
|||
|---|---|---|---|
|
#18+
andreymx Код: plsql 1. вообще ничего в интернете не могу найти про listagg ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2017, 18:30 |
|
||
|
супир иерархия
|
|||
|---|---|---|---|
|
#18+
andreymx Код: plsql 1. и она же записывает в строку а я пока не пойму, как сгруппировать )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2017, 18:35 |
|
||
|
супир иерархия
|
|||
|---|---|---|---|
|
#18+
Ozornitcaнужно выбрать строки 5 2 t 3 1 cпочему именно 5, а не 4 или 2? Почему 3, а не 1? Оригинальный запрос покажи, который дает тебе такой набор ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2017, 18:35 |
|
||
|
супир иерархия
|
|||
|---|---|---|---|
|
#18+
Ozornitca, с таким заголовком темы, тебе место на кухне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2017, 18:39 |
|
||
|
супир иерархия
|
|||
|---|---|---|---|
|
#18+
xtender, запроса нет. это данные в таблице данные только отсортированы asc ord,level суть в том, что так организована иерархия у них level- показывает уровень ord- номер строки итого берем к примеру набор ord level blabla 1 1 a 2 2 b 3 1 c 4 2 d 5 2 t 6 3 jz 7 3 z 8 3 i смотрим для строки 7 3 z для него ближайший первый верхний уровень строка 5 2 t (максимальный ord. level -1) следующий ближайший опять с максимальныс ord и level-1 : 3 1 c ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2017, 18:40 |
|
||
|
супир иерархия
|
|||
|---|---|---|---|
|
#18+
гречкаOzornitca, с таким заголовком темы, тебе место на кухне. идите в ж*** ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2017, 18:41 |
|
||
|
супир иерархия
|
|||
|---|---|---|---|
|
#18+
Ozornitcaидите в ж*** Вот не люблю когда представители женского поля позволяют себе такие выражения. Всегда представляю как она при этом снимает трусы, встает раком и приглашает меня войти в свою ж***. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2017, 18:47 |
|
||
|
супир иерархия
|
|||
|---|---|---|---|
|
#18+
Ozornitcaпф... Фу, ты еще и пукаешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2017, 18:55 |
|
||
|
супир иерархия
|
|||
|---|---|---|---|
|
#18+
Клизма, мне с вами говорить не о чем двери открыты- выходите пс: форум не для ролевых фантазий, если кто вдруг не заметил тут серьезный форум о БД и сопутствующем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2017, 19:02 |
|
||
|
супир иерархия
|
|||
|---|---|---|---|
|
#18+
Ozornitcaсупир иерархия Очень надеюсь это банальная ичепятка. По вопросу: Код: 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. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2017, 19:18 |
|
||
|
супир иерархия
|
|||
|---|---|---|---|
|
#18+
SYOzornitcaсупир иерархия Очень надеюсь это банальная ичепятка. По вопросу: Код: 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. SY. спасибо! правда. запрос совсем не работает там не надо RECURSIVE? case t.lvl when r.prev_lvl then r.blabla || ' ' || t.blabla else r.blabla синтаксис же case when условие then результат и я не пойму почему иерархическим запросом все-таки, там же нестандартная иерархия ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2017, 20:02 |
|
||
|
супир иерархия
|
|||
|---|---|---|---|
|
#18+
SY, вообще честно говоря очень странный вы написали запрос ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2017, 20:04 |
|
||
|
супир иерархия
|
|||
|---|---|---|---|
|
#18+
и вообще это не оракловый синтаксис, мне на самом деле надо постгресс скул, но у вас как будто не совсем постгресскул, но и не оракл- там коннект бай ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2017, 20:06 |
|
||
|
супир иерархия
|
|||
|---|---|---|---|
|
#18+
OzornitcaSY, вообще честно говоря очень странный вы написали запрос Этот "очень странный запрос" называется recursive subquery factoring . А если на самом деле надо постгресс скул то зачем писать на деревню дедушке? SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2017, 20:10 |
|
||
|
супир иерархия
|
|||
|---|---|---|---|
|
#18+
SYOzornitcaSY, вообще честно говоря очень странный вы написали запрос Этот "очень странный запрос" называется recursive subquery factoring . А если на самом деле надо постгресс скул то зачем писать на деревню дедушке? SY. на том форуме пока не ответили ) чтобы принцип понять перенести его в постгрескл) и у меня он пишет что что-то у него не рекурсивное Cast the output of the non-recursive term to the correct type. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2017, 20:13 |
|
||
|
супир иерархия
|
|||
|---|---|---|---|
|
#18+
SY, я не пойму просто, это же не обычный рекурсивный запрос ? для рекурсии должен быть столбец, значение которогог равно значению вышестоящей строки а в моем случае такого столбца-родителя нет то есть у вас запрос как бы цикл по произвольному условию ? я тормоз :( не понимаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2017, 20:26 |
|
||
|
супир иерархия
|
|||
|---|---|---|---|
|
#18+
Ozornitcaдля рекурсии должен быть столбец, значение которогог равно значению вышестоящей строки Для рекурсии дoлжна быть формула как из текущeго сдeлать следующее. У тебя следующее это ORD - 1. Начинаем с: Код: plsql 1. 2. 3. 4. 5. 6. 7. Затем добавляем (через UNION ALL) предыдущий ORD: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. и если LVL = предыдущий LVL - 1 то конкатенируем BLABLA. Остнавливаемся когда предыдущий LVL = 0. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2017, 20:47 |
|
||
|
супир иерархия
|
|||
|---|---|---|---|
|
#18+
SYOzornitcaдля рекурсии должен быть столбец, значение которогог равно значению вышестоящей строки Для рекурсии дoлжна быть формула как из текущeго сдeлать следующее. У тебя следующее это ORD - 1. Начинаем с: Код: plsql 1. 2. 3. 4. 5. 6. 7. Затем добавляем (через UNION ALL) предыдущий ORD: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. и если LVL = предыдущий LVL - 1 то конкатенируем BLABLA. Остнавливаемся когда предыдущий LVL = 0. SY. у меня по идее предыдущее - не именно ord-1 , а при условии , что текущий level<> предыдущему левелу, и первое предыдущее значение нужно брать с level-1 и максимальным для этой группы ord (при этом данные в исходной выорке из таблицы должны быть отсортированы по ord,level asc) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2017, 20:55 |
|
||
|
супир иерархия
|
|||
|---|---|---|---|
|
#18+
SY, аа сори сори вы написали про левел минус 1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2017, 20:57 |
|
||
|
супир иерархия
|
|||
|---|---|---|---|
|
#18+
Иерархический SQL: Код: 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. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2017, 21:03 |
|
||
|
супир иерархия
|
|||
|---|---|---|---|
|
#18+
SY, спасибо!!! вот в таком варианте заработал корректно в постгрессе ) with RECURSIVE r( ord, lvl, dim_recname, prev_ord, prev_lvl ) as ( select ord, level, dim_recname, ord - 1, level - 1 from f$grouping_fact where ord <= 5 and dt = to_date('01.04.2016', 'dd.mm.yyyy') union all select r.ord, r.lvl, case t.level when r.prev_lvl then CAST (r.dim_recname || ' ' || t.dim_recname AS VARCHAR(200)) else CAST (r.dim_recname AS VARCHAR(200)) end, t.ord - 1, case t.level when r.prev_lvl then t.level - 1 else r.prev_lvl end from r, f$grouping_fact t where r.prev_lvl > 0 and t.ord = r.prev_ord and t.ord <= 5 and t.dt = to_date('01.04.2016', 'dd.mm.yyyy') ) select ord, lvl, dim_recname from r where prev_lvl = 0 вывел правда не все уровни вложенности, а один предыдущий мне теперь надо добавить , чтобы в строку писалось столько подряд , сколько уровней (у нас их не больше 3) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2017, 21:48 |
|
||
|
супир иерархия
|
|||
|---|---|---|---|
|
#18+
SY, обожи, прошу прощения ! все работает наикорректнейше ! спасибо вам большое !!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2017, 21:51 |
|
||
|
супир иерархия
|
|||
|---|---|---|---|
|
#18+
Ozornitcaспасибо вам большое !!!Наглых безмозглывх дур никто нигде не любит. Лучше иди на кухн у . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2017, 06:41 |
|
||
|
супир иерархия
|
|||
|---|---|---|---|
|
#18+
ElicOzornitcaспасибо вам большое !!!Наглых безмозглывх дур никто нигде не любит. Лучше иди на кухн у . про наглых согласна. безмозглых любят) а вы кого имеете в виду конкретно? кого-то с форума ? про кухню- я там бываю периодически, пью чай. А что ? причем тут кухня в контексте темы ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2017, 15:58 |
|
||
|
супир иерархия
|
|||
|---|---|---|---|
|
#18+
OzornitcaElicпропущено... Наглых безмозглывх дур никто нигде не любит. Лучше иди на кухн у . про наглых согласна. безмозглых любят) а вы кого имеете в виду конкретно? кого-то с форума ? про кухню- я там бываю периодически, пью чай. А что ? причем тут кухня в контексте темы ? если слова коверкаете бездумно ( как в заголовке темы ) то это напрасно и просто глупо например, поиск ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2017, 18:10 |
|
||
|
супир иерархия
|
|||
|---|---|---|---|
|
#18+
orawishOzornitcaпропущено... про наглых согласна. безмозглых любят) а вы кого имеете в виду конкретно? кого-то с форума ? про кухню- я там бываю периодически, пью чай. А что ? причем тут кухня в контексте темы ? если слова коверкаете бездумно ( как в заголовке темы ) то это напрасно и просто глупо например, поиск я поняла, на серьезном форуме для того, чтобы другие могли пользоваться моим обсуждением, при необходимости. лучше вести корректную переписку но за годы интернета это так сложно... адекватно переписываться.... это как секта- попал и пропал. Даже если с русским нет проблем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2017, 15:13 |
|
||
|
супир иерархия
|
|||
|---|---|---|---|
|
#18+
OzornitcaSY, обожи, прошу прощения ! все работает наикорректнейше ! спасибо вам большое !!! Сударыня, рекомендую посмотреть: HOWTO :: Как правильно задавать вопросы p.s. Если подготовить тестовые данные, рассказать что Вам нужно, (не то что Вы думаете, а именно постановка задачи). Очень может быть, что Ваша задача решается совсем не так как Вы пытаетесь ее решить. Покажите правильно оформленный Ваш код (использование ТЭГов) и Вам ответят гораздо охотнее, быстрее и по делу. Пример тестовый данных и оформление кода Вы можете видеть в сообщении SY. Удачи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2017, 16:50 |
|
||
|
супир иерархия
|
|||
|---|---|---|---|
|
#18+
Vadim LejninOzornitcaSY, обожи, прошу прощения ! все работает наикорректнейше ! спасибо вам большое !!! Сударыня, рекомендую посмотреть: HOWTO :: Как правильно задавать вопросы p.s. Если подготовить тестовые данные, рассказать что Вам нужно, (не то что Вы думаете, а именно постановка задачи). Очень может быть, что Ваша задача решается совсем не так как Вы пытаетесь ее решить. Покажите правильно оформленный Ваш код (использование ТЭГов) и Вам ответят гораздо охотнее, быстрее и по делу. Пример тестовый данных и оформление кода Вы можете видеть в сообщении SY. Удачи спасибо! на самом деле, задача преобразовалась в несколько другой вид ) но уже разобрались ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2017, 15:14 |
|
||
|
|

start [/forum/topic.php?all=1&fid=52&tid=1886585]: |
0ms |
get settings: |
6ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
165ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 471ms |

| 0 / 0 |
