首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MYSQL - "#1111 -组函数的无效使用“错误

MYSQL - "#1111 -组函数的无效使用“错误
EN

Stack Overflow用户
提问于 2016-05-05 14:41:22
回答 1查看 135关注 0票数 0

我在为学校的项目设计气象站。

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

1111 -无效使用组函数

我不知道我做错了什么。

我的问题是:

代码语言:javascript
运行
复制
 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“中获取最小、最大和平均值。

有人能帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2016-05-05 15:07:51

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

在具有组BY的SELECT中,唯一可以选择的列是:

  • 聚合(最大(温度),最小(Luchtdruk)等)
  • 分组列

否则,您将得到此错误。

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

(我不知道MySQL语法,这段代码在Server中不起作用,因为它确实有一些不同的联接,但重要的概念是聚合。)

代码语言:javascript
运行
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37053486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档