我在为学校的项目设计气象站。
在mysql中,我有一个表和我的读数,另一个表有计算值。我编写了一个mysql查询,用计算的值更新第二个表。运行此查询时,将收到此错误。
1111 -无效使用组函数
我不知道我做错了什么。
我的问题是:
UPDATE Waarnemingen2 As t1
INNER JOIN (SELECT `Datum_Tijd`,`Temperatuur`,`Luchtvochtigheid`,`Luchtdruk`,`Regenhoeveelheid` FROM Waarnemingen GROUP BY day(`Datum_Tijd`) + hour(`Datum_Tijd`)) as t2
SET t1.`Min. temperatuur` = MIN(`Temperatuur`),
t1.`Gem. temperatuur` = AVG(`Temperatuur`),
t1.`Max. temperatuur` = MAX(`Temperatuur`),
t1.`Min. luchtvochtigheid` = MIN(`Luchtvochtigheid`),
t1.`Gem. luchtvochtigheid` = AVG(`Luchtvochtigheid`),
t1.`Max. luchtvochtigheid` = MAX(`Luchtvochtigheid`),
t1.`Min. luchtdruk` = MIN(`Luchtdruk`),
t1.`Gem. luchtdruk` = AVG(`Luchtdruk`),
t1.`Max. luchtdruk` = MAX(`Luchtdruk`),
t1.`Regen` = SUM(`Regenhoeveelheid`)查询应该从每个小时从列"Temperatuur“、"Luchtvochtigheid”和"Luchtdruk“中获取最小、最大和平均值。
有人能帮我吗?
发布于 2016-05-05 15:07:51
您的错误是因为SELECT语句中的未聚合列不在GROUP by子句中。
在具有组BY的SELECT中,唯一可以选择的列是:
否则,您将得到此错误。
更改子查询以执行聚合,然后将这些聚合值分配给已连接的表。
(我不知道MySQL语法,这段代码在Server中不起作用,因为它确实有一些不同的联接,但重要的概念是聚合。)
即
UPDATE Waarnemingen2 As t1
INNER JOIN (
SELECT day(`Datum_Tijd`) as day, hour(`Datum_Tijd`) as hour, MIN(Temperatur) as Min_Temperature FROM Waarnemingen GROUP BY day(`Datum_Tijd`) , hour(`Datum_Tijd`)
) t2 on t1.day = t2.day and t1.hour = t2.hour
set
t1.MinTemp = t2.Mintemphttps://stackoverflow.com/questions/37053486
复制相似问题