From: | Albert Baumann <a(dot)baumann(at)t-online(dot)de> |
---|---|
To: | pgsql-de-allgemein(at)postgresql(dot)org |
Cc: | Marco <netuse(at)lavabit(dot)com> |
Subject: | Re: Hilfe beim Finden einer passenden Abfrage |
Date: | 2011-03-26 18:10:53 |
Message-ID: | 1301163053.3249.35.camel@midkemia.baumann.local |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-de-allgemein |
Hallo Marco,
eine Lösung :
Erstelle eine Abfrage mit einer temp. Tabelle mit einer Reihenfolge über
die ID sortiert nach DATE desc.
--temp.Tabelle anlegen
with temp1 as ( SELECT id, date, min, max, "value" ,
--Reihenfolge ermitteln
row_number()over (partition by id order by date desc) AS rang
FROM tabelle
)
-- Neue Abfrage, einschränken mit rang = 1
select id, date, min, max, "value" from temp1
where rang = 1
;
Ergebnis:
id date min max value
---------------------------------------------
1; "2011-03-25"; 20; 30; 17
2; "2011-02-25"; 5; ; 2
3; "2011-03-23"; 40; 55; 52
4; "2011-03-25"; ; ; 128
Gruß
Albert
Am Freitag, den 25.03.2011, 15:15 +0100 schrieb Marco:
> Hi,
>
> Ich suche eine Abfrage, die mir die letzten Einträge pro id liefert. Die
> Tabelle sieht so aus:
>
> id date min max value
> 1 2011-03-25 20 30 17
> 3 2011-03-21 40 55 43
> 3 2011-03-23 40 55 52
> 2 2011-02-25 5 2
> 4 2011-03-15 74
> 4 2011-03-25 128
> 1 2011-03-22 20 30 24
>
> Die folgende Abfrage
>
> select id, max(date) from table group by id;
>
> liefert genau die Zeilen, die ich möchte, allerdings fehlen die Spalten min,
> max und value. Wenn ich
>
> select id, max(date), min, value, max from table group by id, min, value, max;
>
> versuche, erhalte ich zuviele Zeilen.
>
>
> Marco
>
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Marco | 2011-03-27 12:31:16 | Re: Hilfe beim Finden einer passenden Abfrage |
Previous Message | Marco | 2011-03-25 14:15:58 | Hilfe beim Finden einer passenden Abfrage |