長年にわたってさまざまなユーザーによって変更されたトレーニング履歴を持つテーブルがあります。これにより、同じトレーニング レコードが 2 回入力されました。メイン テーブルを複製するテーブルを作成し、すべての重複レコードを挿入したいと考えています。
重複レコードとは、employee_id、course_code、および completion_date がすべて一致する場合です。
重複テーブルを作成でき、重複をプルするように見えるselectステートメントがありますが、それらの1つだけをプルし、両方(またはそれ以上)をプルする必要があります。これは、1 人が別のコース名でトレーニング レコードを入力した可能性がありますが、ID、コード、および日付が同じであるため、重複したエントリであるためです。したがって、すべての重複をプルすることで、それが事実であることを検証できます。
これが私のSELECTステートメントです:
SELECT *
FROM
training_table p1
JOIN
training_table p2 ON (
p1.employee_id = p2.employee_id
AND p1.course_code = p2.course_code
AND p1.completion.date = p2.completion_date)
GROUP BY p1.ssn;
クエリが実行され、一意の行と思われるものが返されます。すべてのコピーを希望します。そして、同じテーブルに INSERT しようとすると、列の数が値の数と一致しないというエラーが表示されます。
どんな助けでも素晴らしいでしょう。