我有一个列A、B、C的表,我希望得到所有具有{B,C}唯一的记录组合。也就是说,B值和C值在一组中只出现一次。
你知道如何做到这一点吗?我假设输出必须包含单个行上的一个组合,这不是一个问题。
为了说明这一点,这里有一个例子:
一个可能的组合是{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,3IOW输出为n元组,具有B,C值唯一.
发布于 2014-07-29 15:49:09
我想你想要一个奇怪的自我连接的诗句:
select t1.*, t2.*
from table t1 join
table t2
on t1.b <> t2.b and t1.c <> t2.c;这将从表中返回所有对,其中b列具有不同的值,而c列具有不同的值。
发布于 2014-07-29 15:23:06
这就是小组的目的。它将按列表分组中具有相同值的所有记录合并到一行中。
select B, C
from my_table
group by B, C发布于 2014-07-29 15:27:10
这个问题有点模糊,如果您只想要@Linger的B&C使用解决方案的值,如果您希望记录中出现B,C组合的所有字段,但是没有其他地方,请使用
SELECT MAX(A),B,C FROM T
GROUP BY B,C
HAVING COUNT(*) = 1https://stackoverflow.com/questions/25018976
复制相似问题