Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 查询有什么问题?语法错误?不工作分组_Mysql_Sql_Sql Server_Database - Fatal编程技术网

Mysql 查询有什么问题?语法错误?不工作分组

Mysql 查询有什么问题?语法错误?不工作分组,mysql,sql,sql-server,database,Mysql,Sql,Sql Server,Database,我写了一个问题 (SELECT TimeStamp, AVG(FwdHr), W FROM Meter_Data WHERE (TimeStamp Between 1370476500 AND 1370477100 AND DeviceID = '1' GROUP BY MeterID ORDER BY TimeStamp) UNION (SELECT TimeStamp, AVG(FwdHr), W FROM Meter_Data WHERE TimeStamp Bet

我写了一个问题

(SELECT TimeStamp, AVG(FwdHr), W 
 FROM Meter_Data 
 WHERE (TimeStamp Between 1370476500 AND 1370477100 AND DeviceID = '1' 
 GROUP BY MeterID ORDER BY TimeStamp) 
UNION 
(SELECT TimeStamp, AVG(FwdHr), W 
 FROM Meter_Data 
 WHERE TimeStamp Between 1370496006 AND 1370496606 AND DeviceID = '1' 
 GROUP BY MeterID ORDER BY TimeStamp)
我想从表中为两个时间戳之间的每个仪表id选择平均值(FwdHr)


然后将其与具有不同时间间隔的同一查询合并

查询中的括号不平衡且不必要。

ORDER BY
GROUP BY
只能应用于最终结果集,不能应用于中间结果。 括号也是不必要的

SELECT * FROM
(
  SELECT TimeStamp, AVG(FwdHr), W 
  FROM Meter_Data 
  WHERE TimeStamp Between 1370476500 AND 1370477100 
  AND DeviceID = '1' 

  UNION 

  SELECT TimeStamp, AVG(FwdHr), W 
  FROM Meter_Data WHERE TimeStamp Between 1370496006 AND 1370496606 
  AND DeviceID = '1' 
) as myTable

GROUP BY myTable.MeterID 
ORDER BY myTable.TimeStamp
或者更好:使用
而不是
联合

SELECT TimeStamp, AVG(FwdHr), W 
FROM Meter_Data 
WHERE DeviceID = '1' 
AND (TimeStamp Between 1370496006 AND 1370496606 
    OR
     TimeStamp Between 1370476500 AND 1370477100 )

GROUP BY MeterID 
ORDER BY TimeStamp

DeviceId是Varchar还是数字?同时发布您收到的错误。@KevinBowersox错误-您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解使用near“按时间戳分组顺序”UNION(选择时间戳,平均值(FwdHr)的正确语法,W来自“第1行为什么标记为
mysql
sql server
?我很难发布我的解决方案,有些事情变得乱七八糟,但您有一个未关闭的左括号,大多数括号甚至都不是必需的。@KevinBowersox-您在尝试扩展答案或其他内容时是否遇到错误?可能会将答案放在桌面上pastebin和其他人可以尝试在中编辑它。此查询将返回什么?请使用ORthats尝试第二个查询,但不是因为这个。我已检查