Как сгенерировать перестановки или комбинации n строк в m столбцах?
Кто-нибудь знает, как создать таблицу с m столбцами из таблицы из n строк, где значения в столбцах каждой строки представляют собой другую комбинацию или перестановку значений из исходной таблицы?
Например, исходная таблица имеет 1 столбец (number_value) с 3 (n = 3) строками:
1
2
3
Таблица, которая содержит комбинации (порядок не имеет значения) двух значений (m = 2), будет следующей:
number1, number2
1,2
1,3
2,3
и таблица перестановок будет следующей:
number1, number2
1, 2
2, 1
1, 3
3, 1
2, 3
3, 2
Порядок строк не имеет значения.
Заранее благодарю вас!
Ответы
Ответ 1
Комбинации:
SELECT T1.x, T2.x
FROM your_table T1
JOIN your_table T2
ON T1.x < T2.x
Перестановки:
SELECT T1.x, T2.x
FROM your_table T1
JOIN your_table T2
ON T1.x != T2.x
Я предполагаю, что значения в исходной таблице уникальны.
Чтобы обобщить для больших значений m, вам нужно добавить больше объединений.