データベース変換スクリプトを作成する際に重複レコードが存在するという問題が発生しました。私の目的はこれらを見つけて重複を削除することです。私はSQLの専門家ではないので、アドバイスのabitを求める!同じテーブルから選択して削除する
私が見つけるために、これまでに出てくると(GROUP_NAMEとレベルがあれば)同じです。この
DELETE FROM achievements
WHERE group_name IN (SELECT concat(group_name, level)
FROM achievements
GROUP BY group_name, level
HAVING count(*) >1);
である。しかし、それは私に次のエラーを与える重複レコードを削除することができた最高のもの
【のErr] 1093 - 表「成果」が「削除」のための標的として、およびデータ
ための別個の供給源はここにあるように、両方の、2回指定されています私の現在のデータ。 https://gist.github.com/Diddyy/13842901c830c19c21488613c9d27c92
そのデータには、3つの重複があります(group_nameの後にレベルが続きます)。同じ名前とレベルを持つエントリが既に存在するように複製として
ACH_CameraPhotoCount 5
ACH_FootballGoalScoredInRoom 1
ACH_FootballGoalScoredInRoom 2
Iクラスこれら。
私の最終結果は、3つの重複を削除しますが、各重複の1つを残して、まだ存在します。
重複するgroup_nameは許可されています。重複レベルは許可されます。しかし、私が望んでいないのは、同じレベルのgroup_nameが2回以上あることです。
私はこれについての解決策を考え出すことができません。また、私はコンカットが最良の方法であると確信していませんか?
すべてのソリューションには、ありがとうございます!
することができますこれは、行を "複製" を保持し、最低レベルとの1が言いますサンプルデータと望ましい結果を提供しますか? –
@GordonLinoff情報を追加しました、謝罪します! –