Sql oracle中的单组函数错误

Sql oracle中的单组函数错误,sql,oracle,Sql,Oracle,此查询在oracle中不起作用。它显示单组功能错误。您是否可以通过尝试获得比结果更多的结果并错过一个组 SELECT name FROM instructor natural join teaches WHERE course_id = (SELECT course_id FROM (SELECT course_id, MAX(mycount) FROM (SELECT course_id, count(I

此查询在oracle中不起作用。它显示
单组功能
错误。

您是否可以通过尝试获得比结果更多的结果并错过一个组

SELECT name 
FROM instructor natural join teaches
WHERE course_id = (SELECT course_id 
                  FROM (SELECT course_id, MAX(mycount) 
                        FROM (SELECT course_id, count(ID) as mycount 
                              FROM takes GROUP BY course_id)));

你错过了一组人。:)


而且,外部子查询实际上不会做任何事情。每个课程ID已经有一行,因此最大值(mycount)将与mycount完全相同。

l第二级子查询中出现错误:

SELECT name FROM instructor 
    natural join teaches 
    WHERE course_id = 
    (SELECT course_id FROM 
        (SELECT course_id, MAX(mycount) FROM 
            (SELECT course_id, count(ID) as mycount FROM takes GROUP BY course_id)
        group by course_ID) -- don't forget this one!
    );
您有一个聚合函数,但没有
分组依据

我还建议您避免自然加入。这只是一个等待发生的错误。隐藏用于连接的键是一件坏事,这会使查询更难理解,更容易出错


然后,你的问题很难理解。我建议你问另一个问题,提供样本数据和期望的结果。可能有一种更简单的方式来表达这一点。

请最好告诉我您想要获得什么,并公布您的表格。此查询的质量非常高。可能与的重复
SELECT name FROM instructor 
    natural join teaches 
    WHERE course_id = 
    (SELECT course_id FROM 
        (SELECT course_id, MAX(mycount) FROM 
            (SELECT course_id, count(ID) as mycount FROM takes GROUP BY course_id)
        group by course_ID) -- don't forget this one!
    );
(SELECT course_id, MAX(mycount) 
 FROM (SELECT course_id, count(ID) as mycount 
       FROM takes
       GROUP BY course_id)
)