2016-11-22 125 views
0

我有2個數據表,僱員和部門。我想顯示部門編號,部門名稱,每個部門的員工數量,每個部門的平均工資,員工姓名,工資以及員工的工作ID。這是我爲我的代碼寫的內容:計數中缺少函數錯誤

select d.department_id, d.department_name, e.count(*) Employees, 
avg(e.salary) Avg_salary, e.last_name, e.salary, e.job_id 
from departments d join employees e 
on d.department_id = e.department_id 
group by d.department_id, d.department_name, e.last_name, e.salary, e.job_id 
order by d.department_id; 

但是,運行代碼時出現錯誤「Missing Function」。我如何解決它?

回答

0

e.count(*)應該只是count(*)

編輯:

這是你所需要的?

COUNT(*) OVER (PARTITION BY e.department_id) DeptCt 
+0

這不工作;它只是單獨顯示每個員工的數量。我想顯示每個部門的員工總數。 – Tim

+0

我試着運行新的編輯代碼,但發生了「不是按功能分組」的錯誤。 – Tim

0

試試這個:

SELECT d.department_id, 
     d.department_name, 
     Count(*)  Employees, 
     Avg(e.salary) Avg_salary, 
     e.last_name, 
     e.salary, 
     e.job_id 
FROM departments d 
     JOIN employees e 
     ON d.department_id = e.department_id 
GROUP BY d.department_id, 
      d.department_name, 
      e.last_name, 
      e.salary, 
      e.job_id 
ORDER BY d.department_id; 
+0

我運行您的代碼,並且計數僅爲每個員工條目返回1,而不是累積。說市場部有3名員工。我希望計數顯示3,但是您的代碼只是三次單獨返回1。 – Tim