2016-11-05 3 views
0

Ich benutze MySQL Ver 14.14 Distrib 5.5.52, für debian-linux-gnu (armv7l) mit readline 6.3 läuft auf raspbian OS mit on ein RaspberyPI 3.MySQL FEHLER 1241 (21000): Operand sollte 1 Spalte (n) auf Aggregat enthalten Abfrage

Ich führe die folgende Abfrage und bekomme folgende Ergebnisse.

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 | 
+-----------------------+----------+----------+-------------------+ 

Wenn ich diese Abfrage an die ändern folgende ich den Fehler ERROR 1241 erhalten (21000): Operand 1 Spalte enthalten sollte (n)

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); 

Irgendwelche Ideen, was ich mit Blick auf?

Dank Steve

+1

Entfernen Entfernen Sie die() aus dem GROUP BY – Mihai

+0

, die den Trick tat !!! Danke @Mihai !!! – merkman

+0

@Mihai, warum nicht als Antwort? –

Antwort

Verwandte Themen