繁体   English   中英

不是单组功能

[英]Not a single-group function

SELECT s.*,count(numeromodule) as nbrmodule from session58 s natural join module15;

嗨,我收到此错误:不是单组函数

首先,不要使用“自然联接”。 它使用列的名称,并且可以随时间改变,更改查询的功能,并导致其突然中断而没有明显的原因。 如果使用显式外键关系,我的内心会更柔和,但事实并非如此。

其次,问题是s.* 这是您想要做的另一种方式:

select s.*,
       (select count(*) from module15 m where s.col1 = m.col1 . . . ) as nbrmodule
from session58 s;

我不知道join条件是什么(另一个不使用natural join原因)。

同样,这将返回0计数。 如果不希望使用它们,则可以使用子查询或where子句将它们过滤掉:

where exists (select 1 from module15 m where s.col1 = m.col1 . . . )

您必须按部分列出group by section中的必填字段,例如

SELECT s.f1,s.f2,count(numeromodule) as nbrmodule 
from session58 s natural join module15 group by s.f1,s.f2;`

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM