Seite 2 von 2

Verfasst: Mo 27. Feb 2012, 14:38
von castorp
ads hat geschrieben:Ihr vergesst, dass der Code dann auf Oracle laufen muss ;-)

Mein Beispiel läuft auf Oracle

Verfasst: Di 28. Feb 2012, 14:32
von paludi06
castorp hat geschrieben:"partition by" ist im Endeffekt ein group by nur "on the fly" - man muss dabei nicht das gesamte Resultat gruppieren.

Durch das order by case ... end wird innerhalb der Gruppe der Wert für HV an die erste Stelle sortiert, first_value() liefert einfach den ersten Wert der Gruppe zurück. Lass mal nur das "innere" Select alleine laufen dann siehst Du was passiert.

Ein gutes Tutorial bzgl. Windowing functions (so heissen die) kannst Du im PostgreSQL Handbuch finden: PostgreSQL: Documentation: Manuals: Window Functions

Oracle nennt das "Analytic Functions". Der entsprechende Abschnit im Handbuch ist hier: Analytic Functions
bzw. eine etwas längere Einführung ist hier: SQL for Analysis and Reporting

Ja. Das ist ein Alias für die "derived table" (sub-select). Unter Oracle nicht zwingend notwendig, ist aber guter Stil.



Vielen Dank für die Erläuterungen, hat mir wirklich sehr geholfen.

Falls ich mal wieder ein Problem hab, weiß ich wohin ich mich wenden kann ;)