Mein TischSQL Query verschiedener Max-Wert mit Datum
ID | sensornode | temperature | humidity | pressure | voltage | datetime
1 Node1 27.81 23.78 1029.7 3.321 2017-04-20 14:17:24
2 Node1 27.93 23.72 1029.7 3.321 2017-04-20 14:17:39
3 Node1 28.1 23.68 1029.8 3.321 2017-04-20 14:17:54
4 Node1 28.08 23.62 1029.7 3.321 2017-04-20 14:18:09
5 Node1 28.21 23.58 1029.8 3.321 2017-04-20 14:18:24
6 Node1 28.37 23.54 1029.7 3.321 2017-04-20 14:18:39
I benötigt, um den Max & Min Werte von Temperatur, Feuchtigkeit und Druck auszuwählen. Dies ist die PHP-Methode, um den max auszuwählen und min
public function getMaxMin($nodeId, $datetimestart, $datetimeend){
$values = array(
':nodeId' => $nodeId,
':datetimestart' => $datetimestart,
':datetimeend' => $datetimeend
);
$sqlmax = "SELECT
MAX(temperature) as temperature,
MAX(humidity) as humidity,
MAX(pressure) as pressure
FROM measurement
WHERE nodeId =:nodeId
AND datetime BETWEEN :datetimestart
AND :datetimeend";
$sqlmin = "SELECT
MIN(temperature) as temperature,
MIN(humidity) as humidity,
MIN(pressure) as pressure
FROM measurement
WHERE nodeId =:nodeId
AND datetime BETWEEN :datetimestart
AND :datetimeend";
$max = $this->queryDatabase($sqlmax, $values);
$min = $this->queryDatabase($sqlmin, $values);
$data = array('max' => $max[0],
'min' => $min[0]
);
return data;
Es funktionierte gut, aber jetzt brauche ich jedes min und max-Wert den je ‚Datetime‘ zu wählen. Natürlich könnte ich die Datenbank nach jedem Max- und Min-Wert abfragen, aber es wäre keine schöne Lösung. Gibt es eine Möglichkeit, dies mit zwei Abfragen zu tun?
Edit: Die aktuelle Ausgabe beider querys in der Daten Array gespeichert sind
$data = Array
(
[max] => Array
(
[temperature] => 29.56
[humidity] => 74.23
[pressure] => 1029.02
)
[min] => Array
(
[temperature] => 7.61
[humidity] => 19.27
[pressure] => 1019.28
)
)
Aber ich bin auf der Suche für diese:
$data = Array
(
[max] => Array
(
[temperature] => 29.56
[t_datetime] =>
[humidity] => 74.23
[h_datetime] =>
[pressure] => 1029.02
[p_datetime] =>
)
[min] => Array
(
[temperature] => 7.61
[t_datetime] =>
[humidity] => 19.27
[h_datetime] =>
[pressure] => 1019.28
[p_datetime] =>
)
)
Können Sie zeigen uns Ausgabe von Ihrem Tisch gewünscht? –
Bitte zeigen Sie uns Ihre erwartete Leistung. Beachten Sie, dass die Ergebnismenge möglicherweise nicht so sauber ist wie Ihre aktuelle, da die maximale Temperatur, Feuchtigkeit und der Druck in verschiedenen Datensätzen auftreten können. –