Oracle 10g中的SQL与条款编译错误
题
在编译错误说“毫米”和“cc”是无效的标识符!
with m as (
select instructor,
count(*) as c
from class
group by instructor),
mm as (
select max(m.c) as cc
from m)
select m.instructor
from m
where m.c = mm.cc;
解决方案
的错误是因为mm
是子查询分解(AKA CTE)实例的名称,但可以看到:
SELECT m.instructor
FROM m
WHERE m.c = mm.cc;
您还没有宣布mm
为连接到m
实例。使用:
WITH m AS (
SELECT instructor,
COUNT(*) as c
FROM CLASS
GROUP BY instructor),
mm AS (
SELECT MAX(m.c) as cc
FROM m)
SELECT m.instructor
FROM m
JOIN mm ON mm.cc = m.c
其他提示
我想你正试图获得最班导师。
你能不能用
Select m.instructor FROM (select instructor, count(*) as c from class group by instructor order by 2 desc) m where rownum = 1
不隶属于 StackOverflow