sql Oracle 10g con error cláusula compilación
Pregunta
El error de compilación dice "mm" y "cc" es el identificador no válido!
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;
Solución
El error se debe a que mm
es el nombre de la instancia Subconsulta Factoring (También conocido como CTE), pero como se puede ver:
SELECT m.instructor
FROM m
WHERE m.c = mm.cc;
No se han declarado mm
como un JOIN a la instancia m
. Uso:
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
Otros consejos
supongo que está tratando de obtener el instructor con la mayoría de las clases.
No se pudo usar
Select m.instructor FROM (select instructor, count(*) as c from class group by instructor order by 2 desc) m where rownum = 1
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow