我写了一个查询
(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)
我想从表格中为两个时间戳之间的每米标识选择平均值(FwdHr)
然后将它与具有不同时间间隔的相同查询结合起来
答案 0 :(得分:0)
查询中的括号不平衡且不必要。
答案 1 :(得分:0)
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
甚至更好:使用OR
代替UNION
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