我有一个包含 A、B、C 列的表,我想获取具有唯一的 {B,C} 记录的所有组合。 即B值和C值在一组中只出现一次。
您有什么想法可以实现这一目标吗?我假设输出必须在一行上包含一个组合,这不是问题。
为了清楚起见,这里有一个例子:
- 1,1,0
- 6,1,1
- 1,1,2
- 3,2,0
- 5,2,1
- 1,2,3
一种可能的组合是 {1,1,0},{1,2,3},而 {6,1,1},{5,2,1} 则不是,因为 C 列值“1” '并不是唯一的。我想要得到的是这样的输出:
1,1,0,1,2,3
6,1,1,1,2,3
IOW,输出将是具有唯一 B、C 值的 n 元组。
最佳答案
我认为你想要一个奇怪的自连接版本:
select t1.*, t2.*
from table t1 join
table t2
on t1.b <> t2.b and t1.c <> t2.c;
这将返回表中 b
列具有不同值且 c
列具有不同值的所有对。
关于mysql - SQL 限制组合集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25018976/