i have MySQL DB, which stores data every minute (for date 1.7.2017 i have 1012 values of 1):
id| value |timeDate
1 | 1 |2017-07-01 ...
2 | 0 |2017-07-01 ...
3 | 1 |2017-07-01 ...
.....
I want to daily count values with value 1 (function):
$stmt = $db->prepare("SELECT day(dTimeDate), COUNT(*) FROM sensorData
WHERE MONTH(dTimeDate) = :dateMonth AND YEAR(dTimeDate) = :dateYear AND _idSensor = :idSensor AND dValue = :valueSensor
GROUP BY dTimeDate");
$stmt->execute(array(':dateMonth' => $m, ':dateYear' => $y, ':idSensor' => $idSensor, ':valueSensor' => $valueSensor));
$row2 =$stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($row2 as $row) {
echo $row['day(dTimeDate)']. ' - ' .$row['COUNT(*)'].'<br/>';
}
I expect to get (like my SQL, example):
(day | Count)
1 - 1012 (count all values with value 1 in day 1)
2 - 105
...(31 lines, one for every day)
Instead i get:
(day | Count)
1 - 1
1 - 1
...(1012 lines of day 1 and value 1)
2 - 1
row2 returns array of all data instead of daily.
How can i get expected values?
GROUP BY dTimeDate, value