我创建了一个由“ y”表示的随机匹配的“ x”乘“ y”矩阵。对于值1-5,“ O”表示“偏好匹配”。仅当两个值都使首选项相互对应时才发生“匹配”(1和2是“匹配”,因为它们都偏爱另一个,而1和3不匹配,因为首选项不进行交互)。
SQL的最佳尝试:
create table variable1 (
match1 binary,
match2 binary,
match3 binary,
match4 binary,
match5 binary
),
create table variable2 (
match1 binary,
match2 binary,
match3 binary,
match4 binary,
match5 binary
),
create table variable3 (
match1 binary,
match2 binary,
match3 binary,
match4 binary,
match5 binary
),
create table variable4 (
match1 binary,
match2 binary,
match3 binary,
match4 binary,
match5 binary
),
create table variable5 (
match1 binary,
match2 binary,
match3 binary,
match4 binary,
match5 binary
),
insert into variable1(
null,
O,
-,
O,
O
),
insert into variable2(
O,
null,
O,
O,
O
),
insert into variable3(
O,
-,
null,
O,
-
),
insert into variable4(
O,
-,
O,
null,
O
),
insert into variable5(
O,
O,
O,
O,
null
),
仅在5x5矩阵中,
1和2匹配 1和4场比赛 1和5比赛 2和5比赛 3和5比赛 4和5比赛 1和3不匹配 2和3不匹配 2和4不匹配 3和4不匹配
第一个问题-是否有一个“匹配”查询列出唯一的1x1匹配集?
第二个问题-是否有一个“迭代匹配”查询,列出“ z”次迭代后唯一的一组匹配?
例如,经过1个匹配迭代,结果将是上面6个匹配的列表。经过2次迭代,结果将是1、4和5的组,因为1和4都与5匹配。
我希望该函数应用于“ x”乘“ y”矩阵。我希望结果是“ z”个列表,对应于迭代次数,每个列表在每个组中都有z + 1个数字。
我正在使用Postgresql 11.4。
这里是解释Excel中第一个匹配功能的链接:
不幸的是,我还没有找到参考VBA。我宁愿简单地将所有内容放在Postgres中。