Как создать перестановки или комбинации из n строк в m столбцов? - PullRequest
21 голосов
/ 12 ноября 2010

Кто-нибудь знает, как создать таблицу с m столбцами из таблицы из n строк, где значения в столбцах каждой строки представляют собой разные комбинации или перестановки значений из исходной таблицы?

Например, исходная таблица имеет 1 столбец (число_значение) с 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 Ответ

31 голосов
/ 12 ноября 2010

Комбинация:

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, вам нужно добавить больше объединений.

...