Re: Hilfe beim Finden einer passenden Abfrage

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
>
>
>

In response to

Responses

Browse pgsql-de-allgemein by date

  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