我的数据库中有3个表,它们的结构相同。...
ID |时间戳记|年份月|日小时|水|电气|天然气|太阳能发电
水,电,天然气和太阳能发电的每一行数据都相同。那四列是随机数。数据由每小时由cronjob触发的PHP脚本生成。现在我有按小时显示的数据可以追溯到2018年1月1日。因此,现在每个表中只有11,000条记录。我已经用sql查询完成了一些任务,但绝不是专家,而且我现在尝试创建的任务有点困难。
我发布的查询从最近10个小时的所有3个表中获取行,并对水,电,天然气和太阳能的总数求和。现在,这只允许我在1行中显示结果。我需要做的是显示那10个小时,就像您在屏幕截图中看到的那样。
我的代码:https://www.screencast.com/t/SHTM7ERh
如何显示它,但具有SUM功能:https://www.screencast.com/t/aH07ZUvyG
SELECT
timestamp AS Timestamp,
SUM (water) AS 'Water Total',
SUM (electric) AS 'Electric Total',
SUM (naturalgas) AS 'N. Gas Total',
SUM (solargeneration) AS 'Solar Total'
FROM
(
SELECT
timestamp,
water,
electric,
naturalgas,
solargeneration
FROM
wpdatatable_24
UNION
SELECT
timestamp,
water,
electric,
naturalgas,
solargeneration
FROM
wpdatatable_23_1
UNION
SELECT
timestamp,
water,
electric,
naturalgas,
solargeneration
FROM
wpdatatable_23_1_1) t
WHERE timestamp >= NOW() - INTERVAL 10 HOUR;
答案 0 :(得分:0)
您必须将GROUP BY HOUR(时间戳)分组。 您还应该决定编写SELECT min(timestamp)AS时间戳,而不是SELECT时间戳AS时间戳,