【问题标题】:How to generate a permutations or combinations of n rows in m columns?如何在 m 列中生成 n 行的排列或组合?
【发布时间】:2011-05-08 18:12:22
【问题描述】:

有谁知道如何从 n 行的表中创建一个包含 m 列的表,其中每行的列中的值代表原始表中值的不同组合或排列?

例如,原始表有 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

行的顺序无关紧要。

提前谢谢你!

【问题讨论】:

    标签: sql combinations


    【解决方案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 值,您需要添加更多连接。

    【讨论】:

      猜你喜欢
      • 2014-04-29
      • 1970-01-01
      • 2016-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-26
      相关资源
      最近更新 更多