Select mit Aggregatfunktion

Hallo Leute,

ich habe ein Problem mit diesem SELECT;

SELECT bnr, prodat, lfd_nr, labor, stoffgruppe, stoffkuerzel,
max(wert::numeric) AS wert
FROM sum_chlorbenzole WHERE wert::numeric >= 1
GROUP BY bnr
ORDER BY bnr;

Ich möchte die Einträge mit der gleichen bnr vergleichen und den mit der Bedingung max(wert) selektieren. Die zu max(wert) gehörenden Einträge (prodat, lfd_nr, stoffgruppe … ) sollen mit ausgelesen werden. Diese sollen aber nicht verglichen oder zusammen gefasst werden. Sondern beziehen sich auf max(wert) und sollen so bleiben.

Mit meinem SELECT komme ich aber nicht zum Ziel. Hat wer einen Rat?

Gruß
Harald

Ich glaube, Du suchst HAVING. Ich bin aber grad in akuter Zeitnot - big Fete mit viel Aljohol - you know?

Andreas

Hallo,

damit habe ich schon, ohne nennenswertes Ergebnis, gebastelt. Wäre aber für eine Konkretisierung dankbar.

Gruß
Harald

daher ist helfen nur wenig möglich. HAVING kennst du ja schon.

wie waere es damit:

select b.bnr, b.wert, b.lfd_nr, ..... weitere daten-felder
from benzole b 
where b.wert in (
    select max(m.wert)
    from benzole m
    where m.bnr = b.bnr and m.wert >= **schwellwert**
    group by m.bnr)

gruss

Hallo,

die kryptische Anfrage bitte ich zu entschuldigen.

Dein Vorschlag war exakt das; was ich erreichen wollte. Hier das Select, ergänzt um die Georeferenzierung:

SELECT b.bnr, b.prodat, b.lfd_nr, b.labor, b.stoffgruppe, b.stoffkuerzel, b.wert, c.gid, c.the_geom
FROM sum_chlorbenzole b JOIN gwms_alle_bnr_kor_koh c ON b.bnr = c.bnr
WHERE b.wert IN (SELECT max(m.wert::numeric) FROM sum_chlorbenzole m
WHERE m.bnr = b.bnr AND wert::numeric >= 1
GROUP BY m.bnr)

Einen herzlichen Dank
Harald