PDA

View Full Version : sql distinct on (spalte)



Marc_w
02-04-07, 09:40
Hallo.
Habe ein kleines select Problem. Ich möchte aus einer Tabelle jeweils nur einen Satz (den ersten Satz der gefunden wird) der meinen Kriterien entspricht herausfiltern. Es gibt wohl eine Funktion
select distinct on (Spalte4) Spalte 1, Spalte3, Spalte4,... where ... womit der distinct nur auf die angegebene Spalte angewendet wird und die anderen Werte beliebig sein dürfen. Vielleicht hat mir einer nen Tipp zu meinem Problem.

Danke

Marc

Rincewind
02-04-07, 11:36
Es gibt da verschiedene Möglichkeiten:

"For 1 Rows Only " Selektiert nur 1 Satz (Falls du genau einen haben willst)

Ansonsten kenne ich den Distinct nur in der Art, dass er die Zeilen der selektion zusammenfasst wenn die Felder gleich sind

(Also Select distinct name from kundenp würde mir jeden Kundennamen genau einmal ausgeben, egal wie oft er in der tabelle ist)

Für dein Problem würde ich ansonsten mit einem Subselect arbeiten dass mir MIN(RRN(Dateiname)) ermittelt und somit den Satz mit der niedrigsten Satznummer für die ausgewählten Kriterien sucht.

Cya
Rince

Marc_w
02-04-07, 15:20
Danke für den Tipp.

Hat nach etwas Testarbeit wunderbar geklappt.
Das mit dem distinct on kommt von postgre sql, hab es verwechselt.

Marc