[英]SQL Select: Do rows matching id all have the same column value
我有一张这样的桌子
sub_id reference
1 A
1 A
1 A
1 A
1 A
1 A
1 C
2 B
2 B
3 D
3 D
我想确保每个组中的所有参考文献都具有相同的参考文献。 例如,表示以下所有引用:
第1
组应为A
第2
组应该是B
第3
组应该是D
如果不是,那么我想返回一个 sub_id 列表。 所以对于上面的表格,我的结果是: 1
理想情况下,在这些条件下,引用将位于一个单独的表中,sub_id 作为 PK,但我需要先修复大量数据集,然后才能继续重组数据库。
您可以使用以下方法:
select t.sub_id
from YourTable t
group by t.sub_id
having max(t.reference) <> min(t.reference)
更改YourTable
以适应。
您在寻找简单的聚合吗?
select sub_id
from table t
group by sub_id
having count(distinct reference) > 1;
你想要的查询:
SELECT sub_id
FROM test_sub
GROUP BY sub_id HAVING count(DISTINCT reference) > 1
;
这是我用来测试它的:
CREATE TABLE `test_sub` (
sub_id int(11) NOT NULL,
reference varchar(45) DEFAULT NULL
);
INSERT INTO test_sub (sub_id, reference) VALUES
(1, 'A'),
(1, 'A'),
(1, 'A'),
(1, 'A'),
(1, 'C'),
(2, 'B'),
(2, 'B'),
(3, 'D'),
(3, 'D'),
(3, 'D'),
(4, 'E'),
(4, 'E'),
(4, 'E'),
(5, 'F'),
(5, 'G')
;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.