Hej,
ich hoffe hier kennt sich der ein oder andere ein bisschen mit Postgres aus. Folgendes Statement:
SELECT met_en,
sum( CASE WHEN rev THEN 1 ELSE 0 END ) AS r,
sum( CASE WHEN ( NOT rev AND net < 0 ) THEN 1 ELSE 0 END ) AS e,
sum( CASE WHEN ( NOT rev AND net > 0 ) THEN 1 ELSE 0 END ) AS p
FROM st
WHERE net != 0
GROUP BY met_en
HAVING ( r > 1 )
OR ( e > 0 AND ( r > 0 OR p > 0 ) )
OR ( p > 0 AND ( r > 0 OR e > 0 ) )
Angeblich ist das Statemen fehlerhaft, weil "Spalte r unbekannt ist". Ichhab auf Anhieb aber keine Möglichkeit gefunden, anders auf die etwas aufwendigen Aggregatfunktionen zuzugreifen ohne sie in der HAVING-Klausel wieder niederzuschreiben.
Kann ich das doch irgendwie mit Aliasen machen?
Falls nicht: Würden die Aggregatfunktionen für jedes mal wo sie in HAVING
erscheinen müssten erneut ausgewerted oder rafft Postgres dass das jeweils der gleiche Asudruck mit gleichem Ergebnis ist?
Beste Grüße
Biesterfeld
--
Art.1: Et es wie et es
Art.2: Et kütt wie et kütt
Art.3: Et hätt noch immer jot jejange
Das Kölsche Grundgesetz
Art.1: Et es wie et es
Art.2: Et kütt wie et kütt
Art.3: Et hätt noch immer jot jejange
Das Kölsche Grundgesetz