|
|
|
Объединить списки по общим элементам
|
|||
|---|---|---|---|
|
#18+
Привет, мож кто в нужное русло направит ) Есть исходные данные a,b a,c d,e c,f Для каждой строки нужно вернуть список, состоящий из общих элементов: Код: plaintext 1. 2. 3. 4. 5. 6. В реальности кол-во строк измеряется сотней тысяч, кол-во элементов в строке от 1 до 300 (элементы в строке уникальны). Исходные данные - Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 01:53 |
|
||
|
Объединить списки по общим элементам
|
|||
|---|---|---|---|
|
#18+
Lexi-227, connected components: quick find quick union algorithm Код: 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. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. В выделенном должен быть твой запрос ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 02:49 |
|
||
|
Объединить списки по общим элементам
|
|||
|---|---|---|---|
|
#18+
xtender, Спасибо большое! А на чистом SQL, интересно, это возможно решить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 10:05 |
|
||
|
Объединить списки по общим элементам
|
|||
|---|---|---|---|
|
#18+
Lexi-227А на чистом SQL, интересно, это возможно решить? объединение групп, у которых есть пересекающиеся элементы (пятничная задача ?) Реализация множеств Количество груп связей в many to many Нейро связи Группировка типа "или" - не могу придумать как реализовать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 11:13 |
|
||
|
Объединить списки по общим элементам
|
|||
|---|---|---|---|
|
#18+
Lexi-227, Вот набросал на коленках Код: 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. только лень переразбирать Re для дистинкта значений Наверно не оптимально, но быстро получилось ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 14:26 |
|
||
|
Объединить списки по общим элементам
|
|||
|---|---|---|---|
|
#18+
MaximaXXL, Lexi-227В реальности кол-во строк измеряется сотней тысяч, кол-во элементов в строке от 1 до 300а на таком кол-ве? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 15:05 |
|
||
|
Объединить списки по общим элементам
|
|||
|---|---|---|---|
|
#18+
xtender, До 300 не добивал ... 3 и 4 тестил, а вот при 1 символе - увидел потерю . Спасибо. Вот исправил: Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 15:20 |
|
||
|
Объединить списки по общим элементам
|
|||
|---|---|---|---|
|
#18+
Ребята, спасибо большое за примеры и ссылки! Взял за основу вариант предложенный xtender, решение вполне устраивает. Был свой вариант – в цикле по каждому элементу, который встречался более одного раза собирал новый ключ через like ‘%’||elem||’%’ к этой же таблице. На больших объемах работало неприемлемо долго. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 16:27 |
|
||
|
Объединить списки по общим элементам
|
|||
|---|---|---|---|
|
#18+
Lexi-227, оптимизированная версия: 1) Выделенный case в new_root - важная штука для ускорения работы с большими группами. 2) Запрос перенес повыше, чтобы с логикой не мешать. Код: 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. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2017, 16:45 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39527721&tid=1885182]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
| others: | 232ms |
| total: | 352ms |

| 0 / 0 |
