FireGlow: AVG / Group By Problem

Beitrag lesen

Guten Tag!

Ich verwende Postgres (neueste Version) als Datenbanksystem.

Leider muss ich etwas ausholen um mein Problem zu schildern!

Es geht um folgende 2 Tabellen:

ims_item : (beinhaltet alle Items)
------------------
item_id,
item_typ,
....

ims_statistic : (beinhaltet mehrere Eintraege (oder keine) zu einem Item )
------------------
object_identifier, (=item_id)
trennschaerfe,
diff_occ,
...

Zusätzlich benutze ich noch 2 Tabellen, die für die Itemauswahl nötig, aber nicht weiter relevant für die Problemstellung sind:

ims_ritemdomain und ims_ritemoperator.

Ich brauche nun einen SELECT-Befehl der mir alle Items nach gewünschten Anforderung (ritemdomain/ritemoperator) mit den Durchschnitten (AVG) der vohandenen trennschaerfe und diff_occ holt.

Derzeit habe ich eine Lösung mit 2 SELECT-Befehlen. Ich würde aber gerne meine Auswahl nach den beiden Statistikwerten sortieren, was leider nicht im nachhinein geschehen darf.

Nun mein SQL-Befehl:

SELECT i.item_id,..., AVG(trennschaerfe) AS trennschaerfe, AVG(diff_occ) AS diff_occ
FROM ims_item i INNER JOIN ims_ritemdomain rid ON (...)
INNER JOIN ims_ritemoperator rio ON (...)
LEFT OUTER JOIN ims_statistic s ON (s.object_identifier=i.item_id)
ORDER BY trennschaerfe DESC

Dieser produziert folgenden Fehler:

FEHLER: Spalte »i.item_id« muss in der GROUP-BY-Klausel erscheinen

Kann ich anders an die Problmstellung gehen oder ist nen Fehle im SQL-Befehl?

Ich habe schon an eine Postgres-Funktion gedacht die mir den Durchschnitt liefert, würde das funktionieren ?