2017-02-02 29 views
0

我有以下兩個模式:如何將從一個關係到另一個關係的計數關聯起來?

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

我已經計算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,物理)和i_ID 27,29屬於指導員(ID,化學),那麼輸出將是:

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

i_ID是外鍵。我對嗎 ? –

+0

是的,你是對的。 –

+0

雖然它在教師中被命名爲ID。 –

回答

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 
相關問題