oracle de SQL avec erreur de compilation de l'article
Question
L'erreur de compilation dit "mm" et "cc" est l'identifiant invalide!
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;
La solution
L'erreur est parce que mm
est le nom de l'instance Affacturage des sous-requêtes (AKA CTE), mais comme vous pouvez le voir:
SELECT m.instructor
FROM m
WHERE m.c = mm.cc;
JOIN à l'instance mm
Vous avez pas déclaré m
. Utilisation:
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
Autres conseils
Je suppose que vous essayez d'obtenir l'instructeur avec les la plupart des classes.
Pouvez-vous pas utiliser
Select m.instructor FROM (select instructor, count(*) as c from class group by instructor order by 2 desc) m where rownum = 1
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow