2016-07-12 12 views
0

Ich habe dieses Problem, wo ich Zeilen ausgeben soll, die denselben Namen in einer anderen Zeile haben. Wenn die Zeile keine andere Zeile mit demselben Namen enthält, rufen Sie diese Zeile nicht ab.Abrufen von Duplikaten und Anzeigen

| ID | Name |
| 1 | Schlachtfeldbewertung |
| 2 | Rufprüfung |
| 3 | battlefield review |
| 4 | Heilige Reihe Bericht |
| 5 | Rufprüfung |
| 6 | Overwatch review |

Die Zeilen Ich möchte abzurufen sind:

| id | Name |
| 1 | Schlachtfeldbewertung |
| 3 | battlefield review |
| 2 | Rufprüfung |
| 5 | Rufprüfung |

Das ist, was ich bisher

bekam
@unique_ids = ExternalReview.select("DISTINCT ON (name) id").map(&:id) 
@external_reviews = ExternalReview.where.not(id: @unique_ids).order("name ASC").paginate per_page: 25, page: params[:page] 

Ich hoffe, dass Sie mir helfen können,

Antwort

1
SELECT id, 
     NAME 
FROM table1 
WHERE NAME IN (SELECT NAME 
     FROM table1 
     GROUP BY NAME 
     HAVING Count (DISTINCT NAME) > 1) 

Versuchen selbst verbinden, wie oben

+0

oben beantwortet, wie Sie die Frage PostreSQL markiert haben. – Neena

Verwandte Themen