我想从表中选择具有完全相同属性的组。例如,我的表如下
facs_run_id | fcj_id
1 | 17
1 | 4
1 | 12
2 | 17
2 | 4
2 | 12
3 | 17
3 | 12
3 | 10
在此表中,每个facs_run_id
都有不同的 组合fcj_id
,一些在数字之间共享,facs_run_id
而另一些则不是。例如,上面的facs_run_id
1
and2
是相同的,while 3
has sharedfcj_id
但不等于1
and 2
。我想查询:
fcj_id
从一个特定的地方收集所有facs_run_id
- 找到所有
facs_run_id
具有完全相同的fcj_id
组合。
在这里,我想找到所有与组合facs_run_id
相等的,所以它应该返回(或& )。fcj_id
facs_run_id: 1
2
1
2
我可以得到那些缺少的东西fcj_id
,甚至可以找到fcj_id
缺少的东西:
SELECT facs_run_id
FROM facs_panel
EXCEPT
SELECT fcj_id
FROM facs_panel
WHERE facs_run_id = 2;
或这个:
SELECT row(fp.*, fcj.fcj_antigen, fcj.fcj_color)
FROM facs_panel fp
LEFT OUTER JOIN facs_conjugate_lookup fcj ON fcj.fcj_id = fp.fcj_id
WHERE fp.fcj_id in ( SELECT fp.fcj_id
FROM facs_panel fp
WHERE fp.facs_run_id = 1);
但我无法进行返回 IDENTICAL 的查询facs_run_id
。我想这可以被认为是寻找聚合重复项的一种方式,但我不知道该怎么做。任何建议或指针将不胜感激(或者如果这种类型的查询不起作用,则可以使用更好的方法来创建表)。