|
Объединить попарно строки
|
|||
---|---|---|---|
#18+
Доброго дня. Помогите сделать запрос... Дано: таблица, из 3х строк с колонками col1 col2 col3. атрибуты: 1 строка 1 1 1 2 строка 2 2 2 3 строка 3 3 3 Нужно: сделать 2ую таблицу, которая будет содержать 9 строк, являющихся попарным объединением строк из основной таблицы с колонками col1_1 col2_1 col3_1 col1_2 col2_2 col3_2 - содержимым объединенных строк. 1 строка 1 1 1 1 1 1 2 строка 1 1 1 2 2 2 3 строка 1 1 1 3 3 3 4 строка 2 2 2 1 1 1 5 строка 2 2 2 2 2 2 6 строка 2 2 2 3 3 3 7 строка 3 3 3 1 1 1 8 строка 3 3 3 2 2 2 9 строка 3 3 3 3 3 3 Идеально, чтобы таблица состояла из 6 строк без повторений типа 1 1 1 1 1 1, 2 2 2 2 2 2, 3 3 3 3 3 3 (понятно, что можно потом почистить повторения, но если это можно сделать сразу же в запросе, было бы хорошо): 1 строка 1 1 1 2 2 2 2 строка 1 1 1 3 3 3 3 строка 2 2 2 1 1 1 4 строка 2 2 2 3 3 3 5 строка 3 3 3 1 1 1 6 строка 3 3 3 2 2 2 Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 17:26 |
|
Объединить попарно строки
|
|||
---|---|---|---|
#18+
jgbobby, 9 строк - cross join таблицы самой на себя 6 строк - join по условию > ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 17:43 |
|
Объединить попарно строки
|
|||
---|---|---|---|
#18+
jgbobby, Код: sql 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 17:53 |
|
Объединить попарно строки
|
|||
---|---|---|---|
#18+
Я наверно зря такой пример привёл. Привёл я его для того, чтобы понятна задача была. На самом деле известно только количество столбцов в исходной таблице. Их 3. Количество строк 1000. Значения в строках разные. 1 1 1 и тд я просто для примера привел. То есть запрос должен быть общим, чтобы из таблицы 1 получить таблицу 2, представляющую собой попарно перебранные значения таблицы 1.. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 18:24 |
|
Объединить попарно строки
|
|||
---|---|---|---|
#18+
jgbobby, Вот этот кусок кода - лишь эмуляция ваших тестовых данных: Код: sql 1. 2. 3. 4. 5. 6. 7.
Основной запрос - это вот этот кусок кода: Код: sql 1. 2. 3. 4. 5. 6.
Единственное, что для произвольных данных нужно заменить конъюнкцию скалярных неравенств на "векторное" неравенство. На примере словарных таблиц PG: Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 18:53 |
|
|
start [/forum/topic.php?fid=53&msg=40097646&tid=1993860]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 264ms |
total: | 404ms |
0 / 0 |