在查询中,你使用了一个子查询,并将其命名为"max_power"。然后,你试图在外部查询中引用这个命名的子查询结果作为一个列名。然而,这是不允许的,因为在外部查询中不能直接引用子查询的列。

要解决这个问题,你可以将子查询的结果存储在一个临时表中,然后在外部查询中引用这个临时表。

下面是修改后的查询语句:

CREATE TEMPORARY TABLE temp_power AS
SELECT MAX(value) AS max_power
FROM device_value_record
WHERE create_time >='2023-06-28 10:59:05.035105' AND create_time <= '2023-06-29 10:59:05.035105'
AND device_id IN ('dev-6bd78682-14d7-11ee-998e-a28e6b1f71ad', 'dev-0988dee6-1003-11ee-a8d3-a28e6b1f71ad', 'dev-8369e594-14d5-11ee-998e-a28e6b1f71ad', 'dev-8369e594-14d5-11ee-998e-a28e6b1f71ad')
GROUP BY create_time;

SELECT SUM(max_power) AS total_max_power
FROM temp_power;

这样,你就可以在外部查询中引用临时表"temp_power",并计算"max_power"列的总和作为"total_max_power"

SELECT SUMmax_power as total_max_powerFROM SELECT MAXvalue FROM device_value_record WHERE create_time =2023-06-28 105905035105 AND create_time = 2023-06-29 105905035105 AND device_id IN d

原文地址: https://www.cveoy.top/t/topic/hAjw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录