テーブルの 2 つ (またはそれ以上) の列に一意のインデックスを配置したいのですが、「重複したキーが見つかりました」と表示されます。重複の原因となる行を選択する方法は?
質問する
1088 次
2 に答える
14
これにはGroup By
とを使用できます。Having
SELECT col1,
col2
FROM table
GROUP BY col1,
col2
HAVING Count(*) > 1
基本的に - 値をグループ化し、複数あるインスタンスをフィルタリングします。
于 2012-08-20T07:41:57.860 に答える
0
次のいずれかの方法を使用できます。
SELECT t1.rowid
FROM this_table t1
WHERE EXISTS (SELECT '1'
FROM this_table t2
WHERE t2.column_value1 = t1.column_value1
AND t2.column_value2 = t1.column_value2
AND t2.rowid > t1.rowid);
SELECT *
FROM this_table_name a
WHERE a.rowid > ANY (SELECT b.rowid
FROM this_table_name b
WHERE a.col1 = b.col1
AND a.col2 = b.col2);
SELECT my_column,
Count(my_column)
FROM this_table_name
GROUP BY my_column
HAVING Count (my_column) > 1;
于 2012-08-20T07:55:44.870 に答える