我有一个没有定义主键的表。 我怀疑将3个字段组合在一起是此表的实际键。 为了测试此假设,我首先需要检查这3个字段作为元组是唯一的。
我想做类似的事情:
SELECT CONCAT(field_A, field_B, field_C) as pk
FROM My_table;
现在,我想搜索是否重复此新字段。 我知道我需要以某种方式进行分组并使用count(*)> 1,但是我无法获得正确的语法。
SELECT *
FROM My_table
GROUP BY CONCAT(field_A, field_B, field_C)
HAVING ? > 1
感觉好像快要完成了,但是我找不到合适的语法使其真正起作用。
答案 0 :(得分:2)
SELECT count(*) cnt, field_A, field_B, field_C
FROM my_table
GROUP BY field_A, field_B, field_C
HAVING cnt > 1