gpt4 book ai didi

MYSQL - "#1111 - Invalid use of group function"错误

转载 作者:行者123 更新时间:2023-11-29 21:02:59 25 4
gpt4 key购买 nike

我正在为一个学校项目编写一个气象站。

在 mysql 中,我有 1 个表包含我的读数,另一个表包含计算值。我编写了一个 mysql 查询来使用计算值更新第二个表。当我运行此查询时,我收到此错误

1111 - Invalid use of group function

我不知道我做错了什么。

我的查询:

 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”列中获取最小值、最大值和平均值。

有人可以帮助我吗?

最佳答案

您的错误是因为 SELECT 语句中有未聚合的列,而这些列不在 GROUP by 子句中。

在带有 GROUP BY 的 SELECT 中,您只能选择的列是:

  • 聚合(MAX(温度)、MIN(Luchtdruk)等)
  • 分组列

否则您会收到此错误。

更改子查询以执行聚合,然后将这些聚合值分配给连接表。

(我不知道 MySQL 语法,这段代码在 SQL Server 中不起作用,因为它的 UPDATE JOIN 有点不同,但重要的概念是聚合。)

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.Mintemp

关于MYSQL - "#1111 - Invalid use of group function"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37053486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com