0

わかりましたので、Oracle に 2 つのテーブルがあります。

CAR、所有者属性付き (EMPLOYEE(ssn) を参照)

EMPLOYEE、属性 name、ssn を持つ。

車の数が最大の従業員の名前と ssn を取得する必要がありますが、この方法で集計関数を使用する方法を理解するのに苦労しています...

私は次のようなことを試しました:

    SELECT name, ssn
    FROM EMPLOYEE
    WHERE ssn IN (SELECT owner
                  FROM CAR
                  HAVING COUNT(owner) = MAX(COUNT(owner))
                  GROUP BY owner)

しかし、何も返されないようです...私は正しい軌道に乗っていますか?

4

2 に答える 2

1
select * from EMPLOYEE
where ssn = (
  select min(owner) keep (dense_rank first order by count(1) desc, owner) 
  from CAR 
  group by owner
)

フィドル

于 2013-10-14T19:20:11.997 に答える
1
select e.name,e.ssn,count(*)
from EMPLOYEE e 
inner join CAR c on e.ssn = c.owner
group by e.name,e.ssn
于 2013-10-14T19:17:19.310 に答える