2013-11-26 68 views
1

我有2表emp和部門:SQL - 使用GROUP BY和計數

select count(*), dept_id a from xe.dept a group by a.dept_id; 

select b.id,b.name from xe.emp b; 

a.dept_id = b.id 

我需要的輸出:

Count, ID, Name 
+0

發佈表結構,錯誤和使用的正確查詢。 – Gayathri

回答

0

試着這樣做:

SELECT a.numRows, b.id, b.NAME 
FROM xe.emp b 
INNER JOIN (
    SELECT COUNT(*) AS numRows, dept_id 
    FROM xe.dept 
    GROUP BY dept_id 
) a ON b.id = a.dept_id 

這在每個dept_id的內部查詢中獲取COUNT,並使用b連接它以獲取id和名稱。

+0

這就像一個魅力 – user2996364

0
select count(*), xe.dept.dept_id, xe.emp.Name 
from xe.dept inner join xe.emp on xe.dept.dept_id = xe.emp.id 
group by xe.emp.id, xe.emp.Name 

xe.dept.dept_id = xe.emp.id這個鏈接很奇怪,因爲我會假設emp.id是員工ID,但你說它匹配。