First of all, thanks to Philip Hallstrom for the quick reply. Consider the following tables CREATE TABLE advncd_onfvalue (timepoint DATETIME NOT NULL, mid INTEGER NOT NULL,/* measurement id */ lid INTEGER NOT NULL,/* location id */ sid INTEGER NOT NULL,/* source id */ entrancetime DATETIME NOT NULL DEFAULT NOW(), value FLOAT NOT NULL /* float value, not unique */ ) ; CREATE TABLE advncd_tempreftime (timepoint DATETIME NOT NULL, mid INTEGER NOT NULL,/* measurement id */ lid INTEGER NOT NULL,/* location id */ sid INTEGER NOT NULL,/* source id */ entrancetime DATETIME NOT NULL ) ; I use the second table to identify the actual resp. obsolete ones within the first table.
DELETE FROM advncd_tempreftime; INSERT INTO advncd_tempreftime SELECT timepoint,mid,lid,sid,MAX(entrancetime) FROM advncd_onfvalue GROUP BY timepoint,mid,lid,sid ; SELECT o.sid,o.timepoint,o.lid,o.mid,o.value FROM advncd_onfvalue o WHERE EXISTS (SELECT * FROM advncd_tempreftime t WHERE o.timepoint = t.timepoint AND o.mid = t.mid AND o.lid = t.lid AND o.sid = t.sid AND o.entrancetime = t.entrancetime ) ; SELECT o.sid,o.timepoint,o.lid,o.mid,o.value FROM advncd_onfvalue o WHERE NOT EXISTS (SELECT * FROM advncd_tempreftime t WHERE o.timepoint = t.timepoint AND o.mid = t.mid AND o.lid = t.lid AND o.sid = t.sid AND o.entrancetime = t.entrancetime ) ; It works fine, but it's a pain how long it takes. I tried to improve the speed by CREATE /* NOT UNIQUE */ INDEX advncd_onfvalue_idx_tmlse ON advncd_onfvalue (timepoint, mid, lid, sid, entrancetime) ; CREATE /* NOT UNIQUE */ INDEX advncd_tempreftime_idx_tmlse ON advncd_tempreftime (timepoint, mid, lid, sid, entrancetime) ; vacuum advncd_onfvalue \g vacuum advncd_tempreftime \g Some effect, but still too slow. Does anybody know alternatives? What about SELECT DISTINCT ON (sid,timepoint,lid,mid) sid,timepoint,lid,mid,value FROM advncd_onfvalue ORDER BY sid,timepoint,lid,mid,entrancetime DESC ; My bad luck is, I cannot test DISTINCT ON (multiple columns) at the moment, because my system admin did not yet install the up-to-date postgres version. Regards, Christoph ---------------------------(end of broadcast)--------------------------- TIP 4: Don't 'kill -9' the postmaster