[解決済み] 複数の列に基づいて重複するレコードを削除しますか?
2023-08-18 20:56:14
質問
Herokuを使ってRuby on Railsアプリケーションをホストしていますが、何らかの理由で行が重複している可能性があります。
2つ以上の基準に基づいて重複するレコードを削除し、その重複するコレクションの1つのレコードだけを維持する方法はありますか?
私の使用例では、データベースに車のメーカーとモデルの関係があります。
Make Model
--- ---
Name Name
Year
Trim
MakeId
私は、同じ名前、年、およびトリムを持つすべてのモデルレコードを削除したいのですが、それらのレコードの1つを保持します(つまり、私はレコードが必要ですが、一度だけです)。私はHerokuコンソールを使用しているので、いくつかのアクティブなレコードのクエリを簡単に実行することができます。
何か提案はありますか?
どのように解決するのですか?
class Model
def self.dedupe
# find all models and group them on keys which should be common
grouped = all.group_by{|model| [model.name,model.year,model.trim,model.make_id] }
grouped.values.each do |duplicates|
# the first one we want to keep right?
first_one = duplicates.shift # or pop for last one
# if there are any more left, they are duplicates
# so delete all of them
duplicates.each{|double| double.destroy} # duplicates can now be destroyed
end
end
end
Model.dedupe
- すべてを検索
- 一意性のために必要なキーでグループ化する。
- グループ化されたモデルのハッシュの値でループを回す
- コピーを1つ保持したいので、最初の値を削除します。
- 残りを削除
関連
-
[解決済み] Mongodbでキーに基づいた重複を削除する方法は?
-
[解決済み] SQLテーブルで重複する値を検索する
-
[解決済み] 重複した行を削除するにはどうすればよいですか?
-
[解決済み] リストの順番を維持したまま、重複を削除するにはどうしたらいいですか?
-
[解決済み] MySQLの重複レコードを検索する
-
[解決済み] Notepad++で重複した行を削除する
-
[解決済み] MySQLで重複した行を削除する
-
[解決済み] Rails find_or_create_by 複数の属性?
-
[解決済み] EmacsのRubyオートコンプリートがほぼ使えるようになった
-
[解決済み] bundlerのダウングレードやrailsのアップグレードはどのように行うのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] サインアップするためのDeviseルートを削除するにはどうすればよいですか?
-
[解決済み] EmacsのRubyオートコンプリートがほぼ使えるようになった
-
[解決済み] rails3プロジェクトからgemsをアンインストールする最良の方法は何ですか?
-
[解決済み] カピバラさん曖昧さ解消
-
[解決済み] Herokuで2つのアプリの間でデータベースを共有する
-
[解決済み] Ruby on Rails 3でモジュールを作成し、使用するには?
-
[解決済み] Railsのhas_manyリレーションでデフォルトでスコープを使用する
-
[解決済み] bundlerのダウングレードやrailsのアップグレードはどのように行うのですか?
-
[解決済み] リクエスト仕様における認証のスタブ化
-
[解決済み] factory_botで配列/ハッシュを定義するには?