nimmt ich eine Tabelle mit den folgenden Spalten:SQL: in Werten zieht mit Aggregaten assoziiert
ID1, ID2, Wert
Für jeden ID1, kann es mehr als ein ID2 und entsprechender Wert, dh :
a,1,5
a,2,6
a,3,7
.
Edit: Simpler version of ask:
How can I pull ID1, Max(ID2), Value without having to group on value (i want
to pull the value that corresponds to the max(id2) and without having to do a second join.
Ich versuche, einen Weg, um herauszufinden, folgendes zu bieten: ID1, Min (ID2), Max (ID2), zusammen mit den Werten mit der Min-/Max-ID2 zugeordnet:
a, 1,3,5,7
der einzige Weg, ich habe kommen mit etwas entlang der Linien von:
select
a.id1, a.min_id2, a.max_id2, b.value as min_value, c.value as max_value
from (select id1, min(id2) as min_id2, max(id2) as max_id2) from table group by 1) a
left outer join (select id1, id2, value from table) b on a.min_id2 = b.id2
left outer join (select id1, id2, value from table) c on a.max_id2 = c.id2
Dies ist ein hypothetisches Beispiel, aber auf meine Daten das laufen nimmt ein extrem lange t ich. Ich habe gehofft, dass es eine Art von Abkürzung geben könnte, von der ich nichts weiß.