排序和限制的排列

时间:2017-04-20 07:09:28

标签: postgresql combinations permutation

我有一些符号,我需要安排它们并确定它们的排列方式:

(x11,x12,x13); (x21,x22,x23); (y11,y12,y13); (y21, y22, y23); (y31,y32,y33); (z11, z12, z13)

请注意,在计算排列时,必须保持圆括号内的顺序。例如,一个可能的订单可能是x11, x21, x12, x22, x13, x23 ...请注意x13发生在x12之后x11发生{/ 1}}。

我们如何确定具有此限制的排列总数?

1 个答案:

答案 0 :(得分:0)

一种方法是创建2个表并进行笛卡尔连接:

 create table letters (letter  char(1));
 create table numbers (num numeric);

 insert into letters values ('A');
 insert into letters values ('B');
 insert into letters values ('C');

 insert into numbers values (1);
 insert into numbers values (2);
 insert into numbers values (3);

 select letter, num
 from letters, numbers;

使用更多代码,您可以在没有“硬表”的情况下执行此操作,而是在数组中对数据进行硬编码,然后让postgres使用它与表相同 - 只取决于我们谈论的数据量。

然后,我可能会完全误解你要解决的问题,因为我的例子中的排列数是“字母表中的行数”次数“数字表中的行数”

相关问题