1

コンパイルエラーに「mm」と表示され、「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;
4

2 に答える 2

5

エラーはmm、Subquery Factoring (AKA CTE) インスタンスの名前であるためですが、ご覧のとおり:

SELECT m.instructor 
 FROM m 
WHERE m.c = mm.cc;

インスタンスmmへの JOIN として宣言していません。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
于 2010-10-25T19:58:50.497 に答える
0

私はあなたが最も多くのクラスを持つインストラクターを獲得しようとしていると思います.

使えませんでしたか

Select m.instructor FROM (select instructor, count(*) as c from class group by instructor order by 2 desc) m where rownum = 1
于 2010-10-25T19:59:11.803 に答える