PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Finden Sie Zeilen mit mehreren doppelten Feldern mit Active Record, Rails &Postgres

Getestete und funktionierende Version

User.select(:first,:email).group(:first,:email).having("count(*) > 1")

Auch dies ist ein wenig unabhängig, aber praktisch. Wenn Sie sehen möchten, wie oft jede Kombination gefunden wurde, setzen Sie .size an das Ende:

User.select(:first,:email).group(:first,:email).having("count(*) > 1").size

und Sie erhalten ein Ergebnis zurück, das wie folgt aussieht:

{[nil, nil]=>512,
 ["Joe", "[email protected]"]=>23,
 ["Jim", "[email protected]"]=>36,
 ["John", "[email protected]"]=>21}

Fand das ziemlich cool und hatte es noch nie gesehen.

Dank Taryn ist dies nur eine optimierte Version ihrer Antwort.