2017-01-26 9 views
0

Ich weiß, dass diese Frage schon mehrmals gestellt wurde, aber keine der Lösungen scheint für mich zu funktionieren. Ich verwende node-postgres, um Daten aus einer Datenbank mit vielen duplizierten Daten zu erhalten. Dies ist die Abfrage ich verwende aber es Duplikate noch zurück:Postgres Gibt nur das erste Vorkommen basierend auf einer nicht eindeutigen Spalte zurück

var queryText = 'SELECT distinct on(kodartikulli) grupi, kodifikimartikulli2, pershkrimartikulli FROM products WHERE kodartikulli IN (' + params.join(',') + ')'; 

Dies ist das Ergebnis:

 
[ anonymous { 
    grupi: 'Syze Dielli', 
    kodifikimartikulli2: 'Polar', 
    pershkrimartikulli: 'POLAR 556 03' } ] 
[ anonymous { 
    grupi: 'Syze Dielli', 
    kodifikimartikulli2: 'Polar', 
    pershkrimartikulli: 'POLAR 556 03' }, 
    anonymous { 
    grupi: 'Syze Dielli', 
    kodifikimartikulli2: 'Polar', 
    pershkrimartikulli: 'POLAR 558 01' } ] 

Wie Sie die ersten beiden Ergebnisse sind identisch zu sehen. Ich will nur eine von ihnen zurückzukehren und mit dem zweiten so weitermachen:

 
[ anonymous { 
    grupi: 'Syze Dielli', 
    kodifikimartikulli2: 'Polar', 
    pershkrimartikulli: 'POLAR 556 03' } ], 
    anonymous { 
    grupi: 'Syze Dielli', 
    kodifikimartikulli2: 'Polar', 
    pershkrimartikulli: 'POLAR 558 01' } ] 
+0

In meinem Code ist ein Fehler aufgetreten. Jetzt zeigt es Daten an, wie es sollte. Wir entschuldigen uns für etwaige Unannehmlichkeiten. – Alfred

Antwort

0

Sie sind die ORDER BY fehlt:

SELECT distinct on(kodartikulli) grupi, kodifikimartikulli2, pershkrimartikulli 
FROM products 
WHERE kodartikulli IN (' + params.join(',') + ')' + ' 
ORDER BY kodartikulli; 

Dies wird eine beliebige Zeile für jede kodartikulli zurück. Normalerweise gibt es einen zusätzlichen Schlüssel, der angibt, welche der Zeilen zurückgegeben werden soll.

+0

Sollte das nicht "GROUP BY" sein? – joop

+0

@joop. . . Nein. Mit 'distinct on' möchten Sie' ORDER BY' verwenden. –

0

Sie wählen Datensätze mit unterschiedlichen kodartikulli. Sie sollten uns Ihre Quelldaten zeigen, aber sicherlich ist der kodartikulli für die 2 Datensätze unterschiedlich, deshalb werden beide extrahiert.

Verwandte Themen