我正在编写一个Python代码,我需要使用MySQLdb从MySQL数据库中检索数据.原始数据库的一部分如下所示:

我用过这个命令
SELECT TimeStamp,Pac
FROM SolarData
WHERE DATE(`TimeStamp`) = CURDATE()
GROUP BY HOUR(TimeStamp);
Run Code Online (Sandbox Code Playgroud)
按小时对数据进行分组,但结果不符合我的预期:

每小时显示的Pac号与每小时的第一条记录的号码相同.这不是整个小时的累积数.我需要的是整个小时的累计数.
那是因为当你不使用GROUP BYANSI标准时,MySQL就像你的酒鬼叔叔.你可能想要:
SELECT HOUR(TimeStamp) AS Hour,
SUM(Pac) AS Pac
FROM SolarData
WHERE `TimeStamp` >= CURDATE()
AND `TimeStamp` < CURDATE() + INTERVAL 1 DAY
GROUP BY HOUR(TimeStamp);
Run Code Online (Sandbox Code Playgroud)
看到您想要的结果会很有帮助.在此之前,上述查询只是基于按小时对数据进行分组的猜测.为了将来参考,请使用SQL Fiddle发布表结构/数据.