0

次のデータを持つ従業員と部門の2つのテーブルがあります

emplyee table
empid    Ename    deptid
1        Ajay      1
2        Vijay     1
3        sanjay    2
4        rajiv     1
5        rohit     2
6        sohit     3

部門テーブル

deptid      deptname
1            HR
2            IT
3            A/C

私の質問は、従業員が最も高い(2番目またはn番目に高い)従業員がいる部門名を表示する方法です。SQlの初心者を助けてください。

4

3 に答える 3

0
select d.deptname
from department d
inner join employee e on e.deptid = d.deptid
group by d.deptname
order by count(d.deptname) desc

これにより、(要求に応じて)会社名のみが最大数から最小数の順に表示されます。

さらに、従業員数が同じ部門がアルファベット順にリストされるように、部門名で並べ替えることもできます。

行番号も表示したい場合 (1、2、3 など)、SQL の「Over」句も追加できます。

于 2013-09-12T14:06:04.213 に答える
0

内部結合と group by 句を使用する必要があります。その後、order by を使用してデータを好きなように並べ替えることができます

SELECT d.deptname,
    COUNT(e.Ename) AS NoOfEmployees
FROM dept d
INNER JOIN emplyee e ON d.deptid = e.deptid
GROUP BY d.deptid
ORDER BY NoOfEmployees
于 2013-09-12T13:55:36.477 に答える