2016-11-05 88 views
0

我正在使用MySQL Ver 14.14 Distrib 5.5.52,用於debian-linux-gnu(armv7l)使用readline 6.3在raspbian OS上運行on a RaspberyPI 3.MySQL錯誤1241(21000):操作數應該包含1列在Aggregate查詢

我運行以下查詢並獲得以下結果。

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

當我修改查詢以下我得到的錯誤 ERROR 1241(21000):操作數應包含1列(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); 

任何想法,我俯瞰什麼?

感謝 史蒂夫

+1

取出()刪除()從GROUP BY – Mihai

+0

這奏效了!謝謝@Mihai !!! – merkman

+0

@Mhaihai,爲什麼不把它作爲答案? –

回答

相關問題