Reputation: 89
I am using MySQL Ver 14.14 Distrib 5.5.52, for debian-linux-gnu (armv7l) using readline 6.3 running on raspbian OS with on a RaspberyPI 3.
I run the following query and get the following results.
mysql> SELECT
-> sensorMeasurements.sensorMeasurementDate,
-> MIN(sensorMeasurements.sensormeasurementvalue) as "minValue",
-> MAX(sensorMeasurements.sensormeasurementvalue) as "maxValue",
-> AVG(sensorMeasurements.sensormeasurementvalue) as "avgValue"
-> FROM sensorMeasurements
-> INNER JOIN userSystemSensors
-> ON sensorMeasurements.usersystemsensorid =
-> userSystemSensors.usersystemsensorid
-> INNER JOIN sensors
-> ON userSystemSensors.sensorid = sensors.sensorid
-> INNER JOIN userSystems
-> ON userSystemSensors.usersystemid = userSystems.usersystemid
-> INNER JOIN users
-> ON userSystems.userid = users.userid
-> WHERE sensors.sensorid = 1
-> AND sensorMeasurements.sensormeasurementdatetime BETWEEN
-> "2016-11-05 10:00:00" AND "2016-11-15 11:00:00"
-> GROUP BY (sensorMeasurements.sensorMeasurementDate);
+-----------------------+----------+----------+-------------------+
| sensorMeasurementDate | minValue | maxValue | avgValue |
+-----------------------+----------+----------+-------------------+
| 2016-11-05 | 66.9 | 73 | 69.56107784431138 |
| 2016-11-06 | 51.5 | 73.4 | 64.03751600512162 |
| 2016-11-07 | 40.3 | 68.7 | 58.34236111111102 |
| 2016-11-08 | 39.2 | 59.4 | 48.1092361111111 |
| 2016-11-09 | 13.2 | 54.8 | 36.78529850746269 |
+-----------------------+----------+----------+-------------------+
When I modify that query to the following I get the error ERROR 1241 (21000): Operand should contain 1 column(s)
SELECT
sensors.sensorName,
sensorMeasurements.sensorMeasurementDate,
MIN(sensorMeasurements.sensormeasurementvalue) as "minValue",
MAX(sensorMeasurements.sensormeasurementvalue) as "maxValue",
AVG(sensorMeasurements.sensormeasurementvalue) as "avgValue"
FROM sensorMeasurements
INNER JOIN userSystemSensors
ON sensorMeasurements.usersystemsensorid =
userSystemSensors.usersystemsensorid
INNER JOIN sensors
ON userSystemSensors.sensorid = sensors.sensorid
INNER JOIN userSystems
ON userSystemSensors.usersystemid = userSystems.usersystemid
INNER JOIN users
ON userSystems.userid = users.userid
WHERE sensors.sensorid = 1
AND sensorMeasurements.sensormeasurementdatetime BETWEEN
"2016-11-05 10:00:00" AND "2016-11-15 11:00:00"
GROUP BY (sensors.sensorName, sensorMeasurements.sensorMeasurementDate);
Any ideas what I am overlooking?
Thanks Steve
Upvotes: 0
Views: 608