我有一张这样的桌子
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,但是在继续进行数据库重构之前,我需要首先修复大量数据集。
答案 0 :(得分:1)
您可以使用以下方法:
select t.sub_id
from YourTable t
group by t.sub_id
having max(t.reference) <> min(t.reference)
更改YourTable
以适合。
答案 1 :(得分:0)
您是否正在寻找简单的汇总?
select sub_id
from table t
group by sub_id
having count(distinct reference) > 1;
答案 2 :(得分:0)
您想要的查询:
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')
;