benötige Hilfe bei SQL-Abfrage mit MySQL

Hallo,

ich habe eine bestehende Tabelle in der durch eine Heizungsanlage Daten automatisiert eingestellt werden, die ich auswerten möchte.

CREATE TABLE Heizungsdaten (
DATIM datetime NOT NULL,
KF smallint(6) default NULL COMMENT ‚Kessel Temp‘,
RGF smallint(6) default NULL COMMENT ‚Rauchgas Temp‘,
BRF tinyint(4) default NULL COMMENT ‚Brennraum Temp‘,
ES tinyint(4) default NULL COMMENT ‚Einschub‘,
PA smallint(6) default NULL COMMENT ‚Pause‘,
LL smallint(6) default NULL COMMENT ‚Luftmenge‘,
SZ tinyint(4) default NULL COMMENT ‚Saugzug‘,
SM varchar(11) default NULL COMMENT ‚Display Anzeige‘,
PRIMARY KEY (DATIM)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

Datenbank-Server ist MySQL 5.0.45 unter Linux

Die Tabelle beinhaltet aktuell 1.3Mio Sätze und täglich kommen ca. 1.500 Sätze hinzu

Anbei ein paar Beispiele von Datensätzen:

„DATIM“,„KF“,„RGF“,„BRF“,„ES“,„PA“,„LL“,„SZ“,„SM“
„2006-12-16 02:26:43“,75,43,0,62,88,13,12," A U S "
„2006-12-16 02:27:43“,75,43,0,62,88,13,12," A U S "
„2006-12-16 02:28:43“,75,42,0,62,88,13,12," A U S "
„2006-12-16 02:29:43“,75,42,0,62,88,13,12," A U S "
„2006-12-16 02:30:43“,75,47,0,62,88,13,12,„Zuendung“
„2006-12-16 02:31:43“,75,55,0,62,88,13,12,„Zuendung“
„2006-12-16 02:32:43“,73,72,0,62,88,13,12,„Zuendung“
„2006-12-16 02:33:43“,69,87,0,62,88,13,12,„Softstrt“
„2006-12-16 02:34:43“,66,96,0,62,88,13,12,„Softstrt“
„2006-12-16 02:35:43“,63,102,0,62,88,13,12,„Softstrt“
„2006-12-16 02:36:43“,60,106,0,127,80,64,60,„ÿÿÿÿÿÿ“
„2006-12-16 02:37:43“,58,111,0,127,80,64,60,„ÿÿÿÿÿÿ“
„2006-12-16 02:38:43“,56,116,0,127,80,64,60,„ÿÿÿÿÿÿ“
[snip]
„2006-12-16 03:28:44“,79,157,0,62,88,13,12,„ÿ "
„2006-12-16 03:29:44“,80,155,0,62,88,13,12,„ÿ "
„2006-12-16 03:30:44“,80,154,0,62,88,13,12,„ÿ "
„2006-12-16 03:31:44“,80,153,0,62,88,13,12,„ÿ "
„2006-12-16 03:32:44“,80,152,0,62,88,13,12,„ÿ "
„2006-12-16 03:33:44“,80,151,0,62,88,13,12,„ÿ "
„2006-12-16 03:34:44“,81,150,0,62,88,13,12,„ÿ "
„2006-12-16 03:35:44“,81,150,0,62,88,13,12,„ÿ "
„2006-12-16 03:36:44“,81,149,0,62,88,13,12,„ÿ "
„2006-12-16 03:37:44“,81,149,0,62,88,13,12,„ÿ "
„2006-12-16 03:38:44“,81,148,0,62,88,13,12,„ÿ "
„2006-12-16 03:39:44“,82,148,0,62,88,13,12,„Nachlauf“
„2006-12-16 03:40:44“,82,153,0,62,88,13,12,„Nachlauf“
„2006-12-16 03:41:44“,82,158,0,62,88,13,12,„Nachlauf“
[snip]
„2006-12-16 03:52:44“,75,112,0,62,88,13,12,„Nachlauf“
„2006-12-16 03:53:44“,74,109,0,62,88,13,12,“ A U S "
„2006-12-16 03:54:44“,74,104,0,62,88,13,12,“ A U S "
„2006-12-16 03:55:44“,73,98,0,62,88,13,12,“ A U S "
„2006-12-16 03:56:44“,73,93,0,62,88,13,12,“ A U S "
„2006-12-16 03:57:44“,73,88,0,62,88,13,12,“ A U S "
„2006-12-16 03:58:44“,73,84,0,62,88,13,12,“ A U S "
„2006-12-16 03:59:44“,74,80,0,62,88,13,12,“ A U S "
„2006-12-16 04:00:44“,74,77,0,62,88,13,12,“ A U S "
„2006-12-16 04:01:44“,74,74,0,62,88,13,12,“ A U S "
„2006-12-16 04:02:44“,75,72,0,62,88,13,12,“ A U S "
„2006-12-16 04:03:44“,75,70,0,62,88,13,12,“ A U S "
„2006-12-16 04:04:44“,75,68,0,62,88,13,12," A U S "
„2006-12-16 04:05:44“,75,66,0,62,88,13,12," A U S "
„2006-12-16 04:06:44“,75,65,0,62,88,13,12," A U S "
„2006-12-16 04:07:44“,75,63,0,62,88,13,12," A U S "

So, ich hoffe damit schonmal den Forenregeln ausreichend gefolgt zu sein, damit ihr mir recht einfach helfen könnt.

Meine Anforderung ist, dass ich eine Auswertung erstellen kann, die mir zu den Einträgen jeweils den Beginn und das Ende der jeweiligen Periode liefert und folgende Zusammenfassung liefert:

DATIM_VON, DATIM_BIS, KF_START, KF_ENDE, SM

Anhand der obigen Daten würde dies dann bedeuten:

DATIM_VON, DATIM_BIS, DAUER, KF_START, KF_ENDE, SM
„2006-12-16 02:26:43“, „2006-12-16 02:29:43“, „00:03:00“, 75, 75, " A U S "
„2006-12-16 02:30:43“, „2006-12-16 02:32:43“, „00:02:00“, 75, 73, „Zuendung“
„2006-12-16 02:33:43“, „2006-12-16 02:35:43“, „00:03:00“, 69, 63, „Softstrt“
„2006-12-16 02:36:43“, „2006-12-16 03:38:44“, „01:12:00“, 60, 81, "ÿ "
„2006-12-16 03:39:44“, „2006-12-16 03:52:44“, „00:11:00“, 82, 75, „Nachlauf“
„2006-12-16 03:53:44“, „2006-12-16 04:07:44“, „00:14:00“, 74, 75, " A U S "

Ich hoffe wirklich, dass einer von Euch eine Idee dazu hat, ich beiße mir jetzt schon seit längerem die Zähne daran aus.

Danke
touareg

Hallo,

ich habe eine bestehende Tabelle in der durch eine
Heizungsanlage Daten automatisiert eingestellt werden, die ich
auswerten möchte.

Kannst Du bitte(!) das HTML-Tag pre verwenden?

CREATE TABLE `Heizungsdaten` (
 `DATIM` datetime NOT NULL,
 `KF` smallint(6) default NULL COMMENT 'Kessel Temp',
 `RGF` smallint(6) default NULL COMMENT 'Rauchgas Temp',
 `BRF` tinyint(4) default NULL COMMENT 'Brennraum Temp',
 `ES` tinyint(4) default NULL COMMENT 'Einschub',
 `PA` smallint(6) default NULL COMMENT 'Pause',
 `LL` smallint(6) default NULL COMMENT 'Luftmenge',
 `SZ` tinyint(4) default NULL COMMENT 'Saugzug',
 `SM` varchar(11) default NULL COMMENT 'Display Anzeige',
 PRIMARY KEY (`DATIM`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

Datenbank-Server ist MySQL 5.0.45 unter Linux

Die Tabelle beinhaltet aktuell 1.3Mio Sätze und täglich kommen
ca. 1.500 Sätze hinzu

Anbei ein paar Beispiele von Datensätzen:

"DATIM","KF","RGF","BRF","ES","PA","LL","SZ","SM"
"2006-12-16 02:26:43",75,43,0,62,88,13,12," A U S "
"2006-12-16 02:27:43",75,43,0,62,88,13,12," A U S "
"2006-12-16 02:28:43",75,42,0,62,88,13,12," A U S "
"2006-12-16 02:29:43",75,42,0,62,88,13,12," A U S "
"2006-12-16 02:30:43",75,47,0,62,88,13,12,"Zuendung"
"2006-12-16 02:31:43",75,55,0,62,88,13,12,"Zuendung"

Rest gelöscht

Meine Anforderung ist, dass ich eine Auswertung erstellen
kann, die mir zu den Einträgen jeweils den Beginn und das Ende
der jeweiligen Periode liefert und folgende Zusammenfassung
liefert:

Kann man im ersten Schritt davon aus gehen, dass die Zeitschritte zwischen den Messwerten immer eine Minute (oder zumindestns zwischen 31 und 89 Sekunden) betragen?

Dann such doch bitte die auf einanderfolgende Datensätze, die innerhalb dieses Zeitraumes eine andere Statusanzeige haben und schreibe diese beiden Informationen in einen Datensatz einer (temporären) Tabelle. (Funktioniert nur performant wenn auch ein Index auf den Zeitstempel liegt.)

DATIM_VON, DATIM_BIS, KF_START, KF_ENDE, SM

Anhand der obigen Daten würde dies dann bedeuten:

DATIM\_VON, DATIM\_BIS, DAUER, KF\_START, KF\_ENDE, SM
"2006-12-16 02:26:43", "2006-12-16 02:29:43", "00:03:00", 75, 75, " A U S "
"2006-12-16 02:30:43", "2006-12-16 02:32:43", "00:02:00", 75, 73, "Zuendung"
"2006-12-16 02:33:43", "2006-12-16 02:35:43", "00:03:00", 69, 63, "Softstrt"
"2006-12-16 02:36:43", "2006-12-16 03:38:44", "01:12:00", 60, 81, "ÿ "
"2006-12-16 03:39:44", "2006-12-16 03:52:44", "00:11:00", 82, 75, "Nachlauf"
"2006-12-16 03:53:44", "2006-12-16 04:07:44", "00:14:00", 74, 75, " A U S "

Ich hoffe wirklich, dass einer von Euch eine Idee dazu hat,
ich beiße mir jetzt schon seit längerem die Zähne daran aus.

Über ein zweites Select auf der erwähnten Zwischentabelle sollte man die Dein gewünschtes Ergebnis erhalten.

Danke
touareg

MfG Georg V.