2016-06-20 11 views
2

Ich habe die Tabelle DealOffers genannt:Wie erste Zeile pro Gruppe wählen mit Bedingung

input table

ich nur einen Datensatz aus jeder Gruppe von dealIds auswählen möchten, wo Preis ist Minimum.

heißt: die erwartete Ausgabe sollte wie folgt sein:

enter image description here

+0

Bitte markieren Sie die richtigen rdbms !!! –

+0

Wenn Sie das tatsächliche Ergebnis und nicht das Bild schreiben können, das wäre sehr hilfreich. –

+0

Tag bearbeitet zu SQL-Server –

Antwort

2

Sie so etwas tun kann. Sie sollten jedoch die Leistung in Betracht ziehen, wenn Sie dies in großem Umfang tun müssen.

select * 
from (
    select *, 
     SeqNum = row_number() over(
      partition by DealId 
      order by Price) 
    from DealOffers) do 
where do.SeqNum = 1; 
Verwandte Themen