-- Remove duplicate participant_expected_values rows before adding unique constraint.
-- For each (participant_id, sports_season_id) group with duplicates, keep the row
-- that has a non-null source_elo (preferred) or the most recently updated row.
DELETE FROM participant_expected_values
WHERE id NOT IN (
  SELECT DISTINCT ON (participant_id, sports_season_id) id
  FROM participant_expected_values
  ORDER BY participant_id, sports_season_id,
    (source_elo IS NOT NULL) DESC,
    updated_at DESC
);

-- Now add unique constraint to prevent future duplicates.
CREATE UNIQUE INDEX "participant_ev_participant_season_unique"
  ON "participant_expected_values" ("participant_id", "sports_season_id");
