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

Beitrag lesen

Hallo!

Die Subquery

(SELECT SUBDATE(MAX(time), INTERVAL 15 MINUTE) AS c_time,
                          messpunkt AS m2 FROM messungen) AS r_t

sieht so aus als wolltest Du max(time)-15m PRO MESSPUNKT ermitteln; das tut sie aber nicht, sondern sie ermittelt max(time)-15m auf der ganzen Tabelle!

Sorry habe vergessen das group by mit ein zu tippen!

So ist das nicht zielführend; "messpunkt" steht in der Query schon wieder zweimal in SELECTs ohne "AS" und

Die Abfrage sieht wie folgt aus:

das scheint mir nicht plausibel, denn

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
                  group by messpunkt ) as r_t
      ON l_t.messpunkt = r_t.messpunkt
WHERE  l_t.time > r_t.c_time
ORDER BY time DESC

MySQL beschwert sich zu Recht darüber:

"ERROR 1052 (23000) at line 1: Column 'messpunkt' in field list is ambiguous"

Bitte die Query genauso angeben, wie Du sie bislang verwendest!
Cut & Paste!

Da es ca. 700 Messpunkte

Aha!

und daher eine Menge an Daten in der Tabelle vorhanden

Dass da "eine Menge" ist war mir irgendwie schon klar.... ;-)
Und genau die Mächtigkeit dieser Menge solltest Du uns mitteilen, genau wie die restlichen Infos, die ich bereits genannt hatte:

Wichtig wäre es mal die Datentypen und Indices zu betrachten:

  • Typ von messpunkt? Indiziert?
  • Typ von data? Ist das ein Blob? Falls ja, wie groß im Mittel?

Insgesamt wäre natürlich das Mengengerüst wichtig:

  • Aktuelle Zahl der Datensätze?

Zusätzlich wäre die Angabe der DB-Engine (MyISAM? InnoDB? ...?) zielfühend.

Grüsse

Solkar