0
我想从表中选择具有完全相同属性的组。例如,我的表就像下面表内相同组合的子查询
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
和2
是相同的,而3
共享fcj_id
但与1
和2
不相同。我想提出查询:
- 收集所有
fcj_id
从特定facs_run_id
- 发现具有完全相同的
fcj_id
组合的所有facs_run_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
。我想这可能被认为是一种寻找聚合重复的方式,但我不知道该怎么做。任何建议或指针将不胜感激(或更好的方式来创建表,如果这种类型的查询将无法正常工作)。
非常感谢您!我现在刚刚找到了答案,但我准备好重做所有这些。谢谢。 – user1148636 2014-09-25 18:37:46