sql - 使用group by和count

时间:2013-11-26 22:38:39

标签: sql oracle

我有两张桌子emp和dept:

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

2 个答案:

答案 0 :(得分: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和名称。

答案 1 :(得分: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,但你说它匹配。