2017-02-02 6 views
0

Iは、2つのスキーマ以下た:1つの関係から別の関係へのカウントによってグループを関連付ける方法は?

advisor(s_ID, i_ID) 
instructor(ID, name, dept_name, credits) 

Iは、それぞれ別個I_IDために、以下の方法をI_ID発生の合計数を計算した:

SELECT i_ID, count(*) 
FROM advisor 
GROUP BY i_ID; 

各I_IDがDEPT_NAMEに属します。各部門名の発生件数の合計を取得するにはどうすればよいですか?

例:

i_ID  count 
21   3 
23   4 
27   1 
29   5 

I_ID 21,23は、出力は次のようになり講師(ID、物理学)に属し、インストラクター(ID、化学)に属するI_ID 27,29とします

dept_name count 
physics  7(3+4) 
chemistry  6(1+5) 
+0

i_IDは外部キーです。私は正しい? –

+0

はい、あなたは正しいです。インストラクターでIDと名前は付けましたが –

+0

です。 –

答えて

2

してみてください。

select dept name, 0 as total advised 
from (select dept name from department 
minus 
select dept name 
from instructor) 
union 
select dept name, count(*) as total advised 
from instructor, advisor 
where instructor.id = advisor.I ID 
group by dept name 
order by dept name; 
0

は、私はこのことができます願っています。この

select a.dept_name,count(*) as count from instructor a join advisor b 
    on a.ID=b.i_ID group by a.ID 
関連する問題