Aggregatfunktion First

Gibt es eigentlich eine "First" Funktion in PG für die Aggregation.
Bekomme immer die Meldung unbekannt.
Brauche aber aus jeder in "Group By..." definierten Gruppe die Werte mehrer=
er Felder eines DS in dem der Max.Wert gefunden wurde.
Wollte also sortieren,gruppieren und den 1.DS jeder Gruppe verwenden.
Eine Idee wäre hilfreich



Mit freundlichen Grüßen

Bernd Wiesecke


---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo [at] postgresql.org so that your
message can get through to the mailing list cleanly
WIESECKE Bernd [ Mo, 30 Januar 2006 12:31 ] [ ID #1164449 ]

Re: Aggregatfunktion First

Hi Bernd,

einmal 'first' aus meiner Repository:

CREATE FUNCTION agg_first (state anyelement, value anyelement) RETURNS
anyelement
AS '
BEGIN

IF (state IS NULL) THEN
RETURN value;
ELSE
RETURN state;
END IF;

END;
'
LANGUAGE plpgsql IMMUTABLE;

CREATE AGGREGATE "first" (
BASETYPE =3D anyelement,
SFUNC =3D agg_first,
STYPE =3D anyelement
);

hth
Tobias

WIESECKE Bernd <BWiesecke.gre [at] gauff.com> wrote:
> Gibt es eigentlich eine "First" Funktion in PG für die Aggregation.
> Bekomme immer die Meldung unbekannt.
> Brauche aber aus jeder in "Group By..." definierten Gruppe die Werte
> mehrerer Felder eines DS in dem der Max.Wert gefunden wurde. Wollte
> also sortieren,gruppieren und den 1.DS jeder Gruppe verwenden.
> Eine Idee wäre hilfreich
>
>
>
> Mit freundlichen Grüßen
>
> Bernd Wiesecke
>
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 1: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo [at] postgresql.org so that
> your message can get through to the mailing list cleanly


---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo [at] postgresql.org so that your
message can get through to the mailing list cleanly
e.t.bussmann [ Mo, 30 Januar 2006 12:55 ] [ ID #1164450 ]

Re: Aggregatfunktion First

am 30.01.2006, um 12:31:05 +0100 mailte WIESECKE Bernd folgendes:
> Gibt es eigentlich eine "First" Funktion in PG für die Aggregation.
> Bekomme immer die Meldung unbekannt.
> Brauche aber aus jeder in "Group By..." definierten Gruppe die Werte me=
hrerer Felder eines DS in dem der Max.Wert gefunden wurde.
> Wollte also sortieren,gruppieren und den 1.DS jeder Gruppe verwenden.
> Eine Idee wäre hilfreich

Kannst Du mal eine kleine Beispieltabelle mit Datensätzen und das
erwartetet Resultat zeigen?


Andreas
--
Andreas Kretschmer (Kontakt: siehe Header)
Heynitz: 035242/47215, D1: 0160/7141639
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
=3D=3D=3D Schollglas Unternehmensgruppe =3D=3D=3D

---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings
andreas.kretschmer [ Mo, 30 Januar 2006 12:43 ] [ ID #1164451 ]

Re: Aggregatfunktion First

"WIESECKE Bernd" <BWiesecke.gre [at] gauff.com> schrieb am 30.01.2006 12:33:20:

> Brauche aber aus jeder in "Group By..." definierten Gruppe die Werte mehr=
erer Felder eines DS in dem der Max.Wert gefunden wurde.
> Wollte also sortieren,gruppieren und den 1.DS jeder Gruppe verwenden.
> Eine Idee wäre hilfreich
>

Wäre das nicht möglich:?

SELECT DISTINCT ON (grouping_column) *
FROM table
ORDER BY grouping_column, max_wert_column DESC ;

MfG Christoph
____________________________________________________________ ______________
Erweitern Sie FreeMail zu einem noch leistungsstarkeren E-Mail-Postfach!=09=
=09
Mehr Infos unter http://freemail.web.de/home/landingpad/?mc=3D021131


---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster
Christoph Lamprecht [ Mo, 30 Januar 2006 14:44 ] [ ID #1164452 ]
Datenbanken » gmane.comp.db.postgresql.german » Aggregatfunktion First

Vorheriges Thema: Chemnitzer Linux-Tage
Nächstes Thema: iX -Artikel