mexxwell33: Probleme mit SQL Abfrage - bestimmte Anzahl an Messungen/pro Ort

Beitrag lesen

Hallo Leute,

Ich hoffe es kann mir jemand bei meinem SQL Problem weiterhelfen. Das verwendete DBMS ist MySQL 4.1.

In der DB ist eine Tabelle mit den folgenden Spalten (id, time, messpunkt, data, ....).
Die Tabelle wird von verschiedenen Messpunkten aus mit Daten befüllt. (Zeitpunkt der Messung, Name der Messstation, Daten, etc.) Dies geschieht pro Station ca. alle 1,5 Minuten.

Für diverse Auswertungen brauche ich ein performante Abfrage, die mir die letzten x Messungen jeder Messstation ausgibt.

Ich habe bereits versucht eine Abfrage mit Subselect und LIMIT zu basteln, jedoch wird LIMIT im Subselect bei MySQL 4.1 nicht unterstützt.

Ein weiterer Versuch war es mit Hilfe der Zeit auf das gewünschte Ergebnis zu kommen und den Rest in der Applikation auszufiltern.

SELECT id, time, messpunkt, data FROM messungen as l_t
      INNER JOIN (select SUBDATE(max(time), INTERVAL 15 MINUTE) as c_time,
                          messpunkt FROM messungen) as r_t
      ON l_t.messpunkt = r_t.messpunkt
WHERE  l_t.time > r_t.c_time
ORDER BY time DESC

Jedoch dauert die Abfrage auf Grund der großen Datenmenge eine kleine Ewigkeit, und bei Einschränkung auf z.B. nur Messungen der letzten Stunde kann es sein das Daten fehlen, da eine Station eventuell schon längere Zeit keine Informationen gesendet hat.<br/>

Ich hoffe auf ein paar Wertvolle Tipps :-)