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